Der Martin: Bildupload mit Typ-Beschränkung

Beitrag lesen

Hallo,

wie machst du das? Prüfst du den MIME-Typ, oder gar die Extension des Namens?
Versuche stattdessen lieber, mit getimagesize() aus der gd-lib die Bildgröße zu bestimmen. Bei identifizierbaren Bildformaten (GIF, PNG, JPEG) kommen plausible Werte raus.
Genau genommen teste ich beides. Also erst den MIME-Typen und wenn der stimmt nochmal mit getimagesize().

Untersuche lieber den Dateinamen (bzw. dessen Extension) anstatt des MIME-Typs, der beim Upload nicht vertrauenswürdig ist. Sonst schiebt dir tatsächlich jemand ein manipuliertes Bild mit der Extension "php" unter, und du tappst in die von dr_vertigo beschriebene PHP-Falle.

getimagesize() auch deshalb, weil die Bilddaten zusammen mit Daten des Uploads in einer Tabelle gespeichert werden.

Dann speichere aber sicherheitshalber nicht den MIME-Typ, den dir der Client beim Upload mitgeteilt hat, sondern den, den getimagesize() anhand der Untersuchung tatsächlich herausgefunden hat.

Ich überleg jetzt nur noch wie ich mit Alpha-Transparenten PNGs umgehe.
Da macht mir die Erhaltung der Transparenz beim bearbeiten immer Probleme ;(

Lies mal die UCN zu imagecreatefrompng(), besonders den derzeit jüngsten Hinweis. Das könnte dir helfen, wenn du soweit bist.

Ciao,
 Martin

--
Zwei Stammtischbrüder:
Hier steht, dass laut Statistik über 60 Prozent aller Ehefrauen fremdgehen.
Was soll ich mit dieser Information? Ich brauche Namen, Fotos, Telefonnummern ... !