Trotz der Verwendung eines gängigen Ansatzes zur Validierung von Bilddateitypen sind bei einigen Benutzern beim Hochladen Fehler aufgetreten.
Der bereitgestellte Codeausschnitt nutzt die vom Benutzer bereitgestellte Eigenschaft $_FILES['fupload']['type'], die anfällig für Manipulationen ist durch böswillige Benutzer. Um diese Schwachstelle zu beheben, wurde vorgeschlagen, dass die Verwendung von mime_content_type() die Genauigkeit verbessern würde.
Die empfohlene Lösung besteht jedoch darin, sich nicht vollständig auf benutzerdefinierte Werte zu verlassen. Stattdessen wird empfohlen, eine eigene Typüberprüfung durchzuführen.
Für Bilder bietet die Funktion exif_imagetype() eine zuverlässige Methode zur Bestimmung des wahren Formats der Datei:
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $detectedType = exif_imagetype($_FILES['fupload']['tmp_name']); $error = !in_array($detectedType, $allowedTypes);
Dieser Ansatz überprüft die Die Binärsignatur des Bildes direkt, wodurch die Möglichkeit ausgeschlossen wird, dass Benutzer den Dateityp manipulieren.
Alternativ können Sie für eine erweiterte Dateitypüberprüfung die Verwendung der Finfo-Funktionen if in Betracht ziehen Ihr Server unterstützt sie.
Das obige ist der detaillierte Inhalt vonWie kann ich hochgeladene Bilddateitypen in PHP sicher überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!