Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich hochgeladene Bilddateitypen in PHP sicher überprüfen?

Wie kann ich hochgeladene Bilddateitypen in PHP sicher überprüfen?

DDD
Freigeben: 2024-11-30 19:05:12
Original
409 Leute haben es durchsucht

How Can I Securely Verify Uploaded Image File Types in PHP?

Debuggen der Dateitypüberprüfung in PHP

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.

Behebung des Problems

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage