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 ... !