Verlassen Sie sich bei der Validierung hochgeladener Dateitypen in PHP auf die vom Benutzer bereitgestellten $_FILES['fupload']['type'] ist riskant, da es manipuliert werden kann. Diese Methode kann zu Inkonsistenzen bei der Fehlerbehandlung führen.
Um dieses Problem zu beheben, sollten Sie mime_content_type() verwenden, um eine zuverlässigere Dateityperkennung zu erhalten. Allerdings hängt mime_content_type() in gewissem Maße auch von Benutzereingaben ab.
Für einen robusteren Ansatz:
$allowedTypes = [IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF]; $detectedType = exif_imagetype($_FILES['fupload']['tmp_name']); $error = !in_array($detectedType, $allowedTypes);
Diese Methode untersucht die den tatsächlichen Inhalt der hochgeladenen Datei und überprüft ihren Typ anhand ihrer Signatur.
Wenn Ihr Server finfo() unterstützt, bietet er eine umfassendere Dateianalyse. Das folgende Codebeispiel demonstriert seine Verwendung:
$mimeTypes = ['image/png', 'image/jpeg', 'image/gif']; $finfo = new finfo(FILEINFO_MIME_TYPE); $mimeType = $finfo->file($_FILES['fupload']['tmp_name']); $error = !in_array($mimeType, $mimeTypes);
Durch die Implementierung einer dieser Methoden können Sie die Zuverlässigkeit Ihrer Dateitypprüfungen erhöhen und die Konsistenz der Fehlerbehandlung verbessern.
Das obige ist der detaillierte Inhalt vonWie kann ich hochgeladene Dateitypen in PHP sicher überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!