Einzelnen Beitrag anzeigen
  #1  
Alt 28.12.2017, 10:54:34
Paykoman Paykoman ist offline
Anfänger
 
Registriert seit: Dec 2017
Alter: 38
Beiträge: 2
selfphp File_upload Tutorial und ermitteln des mime-types

Hallo Forum,

ich bin heute auf euer Tutorial gestoßen und da ich meine Uploads eh noch validieren muss dachte ich mir gut, gehen wir es jetzt an!

Viele viele Sachen sind wirklich gut erklärt und sehr hilfreich, leider habe ich ein Problem mit dem ermitteln von MIME-Typen. Ihr habt da eine schöne Beispielklasse für den Fall das man nicht auf die finfo zugreiffen kann und falls doch leider nur ein sehr sehr kurzes snippet das nicht funktioniert!!!

PHP-Code:
if( !$finfo finfo_open(FILEINFO_MIME_TYPE) ){ echo 'no func'; exit; }
$mime_type mime_content_type($finfo$_FILES['file']['tmp_name']);
finfo_close($finfo);
echo 
'finfo result: '.$_FILES['file']['tmp_name'].' -> 'var_dump($mime_type); exit; 
liefert: finfo result: /tmp/phpLTTq21 -> bool(false)

Ich habe dann natürlich noch ein wenig rum experimentiert, vor allem weil es mich verwundertder das '$finfo' nicht benutzt wird beim ermitteln.

PHP-Code:
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type $finfo->buffer(file_get_contents($_FILES['file']['tmp_name'])); // $finfo->file($_FILES['file']['tmp_name']);
finfo_close($finfo);
echo 
'finfo result: '.$_FILES['file']['tmp_name'].' -> 'var_dump($mime_type); exit; 
Lieferte dann:
Code:
finfo result: /tmp/phpaQAIio -> string(10) "text/plain" // $finfo->file
finfo result: /tmp/phpvbShIL -> string(19) "application/x-empty" // file_get_contents

Nun wundert mich nicht das mansche "Löcher" in Ihr System haben wenn es einem so schwer gemacht wird diese zu stopfen.
Sinn und Zweck ist es ja die MIME zu ermitteln damit wir VOR dem verschieben in einen anderen Ordner an Hand von MIME eine Extension setzten können, offensichtlich fällt PHP dies aber schwer solange die Datei sich noch in dem php temporären Ordner befindet.

Über entsprechende Hilfe wäre ich sehr Dankbar.

MfG: Paykoman

PS: Es wird der EXIF-Header erwähnt und das dort nach wie vor Schadcode enthalten sein kann aber nicht den Hauch eines Ansatzes um was dagegen zu tun... Ist Datei-technisch nicht möglich es heraus zu filtern oder gilt der Ansatz die Dateien entsprechend nicht ausführbar machen (CHMOD + Direktaufruf ausschließlich Medium darstellen und unterdrücken von z.B. php code(wie?) ).
Mit Zitat antworten