Heren, nadat mijn server gehackt is omdat een grapjas een .jpg uploaden met daarin verborgen een PHP code, ben ik mijn functie aan het herschrijven geweest. Ik denk dat ik al een heel eindje ben, maar wie heeft nog aanvullingen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| public static function upload_document_id($user_id, $type) { define("UPLOAD_DIR", "resources/identification/"); $allowed_types = ['image/jpg', 'image/png', 'image/jpeg', 'image/gif', 'application/pdf', 'application/octet-stream']; $allowed_extensions = ['jpg','png','jpeg','gif','pdf']; if (isset($_FILES['identity_document']) && $_FILES['identity_document']['size'] < 2000000) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $imageFileType = finfo_file($finfo, $_FILES['identity_document']['tmp_name']); $ext = pathinfo($_FILES['identity_document']['name'], PATHINFO_EXTENSION); if ($imageFileType == 'image/jpg' || $imageFileType == 'image/png' || $imageFileType == 'image/jpeg' || $imageFileType == 'image/gif') { $check = @getimagesize($_FILES['identity_document']['tmp_name']); } if ($imageFileType == 'application/pdf' || $imageFileType == 'application/octet-stream') { $check = true; } if ($check !== false && in_array($imageFileType, $allowed_types) && in_array($ext, $allowed_extensions)) { $target_name = $user_id.'-'.date("YmdHis").'-'.md5($_FILES['identity_document']['name']).'.'.$ext; $target_filename = preg_replace("/[^A-Z0-9._-]/i", "_", $target_name); $target_file = UPLOAD_DIR.basename($target_filename); //move_uploaded_file($_FILES['identity_document']['tmp_name'], $target_file); if (file_exists($target_file)) { Users::update_identification($_POST, $target_name, $user_id); } } } } |
[ Voor 48% gewijzigd door Verwijderd op 28-12-2016 10:14 ]