Du bist hier: Seitenreport    Forum    Web-Entwicklung    PHP & MySQL    Bilder-Upload absichern - PHP

Bilder-Upload absichern - PHP

Verfasst am: 29. 07. 2010 [19:40]
gambler
Dabei seit: 01.10.2009
Themenersteller

96 Beiträge
Beitrag hilfreich?

Hey PHP-Profis,

zurzeit (versuche) ich grade einen sicheren Bilder-Upload mit PHP zu entwickeln und wollte mal fragen, ob ihr noch irgendwelche Tipps habt.

Im Moment sichere ich den Upload wie folgt ab:

1. Bild-Datei wird auf eine richtige Endung hin überprüft (.jpg, .gif usw.)

2. Content-Type bzw. MIME-Type ist clientseitig richtig gesetzt (image/jpeg, image/gif usw.) - die clientseitige Prüfung mache ich über $_Files['image']['type'] - da man dieses ja leicht ändern kann z.B. mit Firefox AddOn LiveHeaders überprüfe ich als nächstes serverseitig

3. serverseitigen Content-Type, wobei ich über Fileinfo von PHP den Content-Type der Datei abfrage - auch hier das Problem, dass ich z.B. eine PHP-Datei als .png abspeicher und einfach den PNG-Header vor dem PHP-Code in die Datei einfüge -> dadurch wird von Fileinfo der MIME-Typ als image/png erkannt

4. mit getimagesize() prüfen, ob korrekte Werte im zurückgegebenen Array vorhanden sind

Joah, das erst mal das was ich so bezüglich Sicherheit gemacht habe, aber was mir Sorgen bereitet ist das MIME-Type-Guessing vom IE (wobei es im IE8 wohl nicht mehr ist).
Ich könnte eine ganz normales PNG-Bild hochladen, jedoch mit präparierten Kommentar, welches z.B. <html>Javascript-Code</html> enthält. Wenn dieser Kommentar nun innerhalb der ersten 256Bytes steht, dann verwirft der IE einfach den PNG-Header und überträgt es als HTML. Lade ich dieses Bild nun hoch und rufe es direkt über den Browser auf, dann sehe ich bei Firefox, IE8 etc. das Bild, aber im IE7(abwärts) wird der Javascript aufgerufen.

Da der IE7 doch noch von relativ vielen genutzt wird, würde ich das gerne abgesichert wissen. Ich weiß nur nicht was hier sinnvoll erscheint?! Mittels regulären Ausdrücken einfach gucken, ob ein script-Tag vorhanden ist, würde mir am ehesten einfallen.

Also vielleicht habt ihr noch Tipps oder Hinweise?

Gruß Stephan

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 29.07.2010 um 19:43.]

 
Verfasst am: 29. 07. 2010 [19:54]
romacron
Dabei seit: 01.11.2009

1143 Beiträge
Beitrag hilfreich?

Kurz und schmerzlos.

Jede Datei die raufgeladen wird und nicht geprüft ist, umbenennen.
bilchen.jpg.txt. (oder ähnliches)

So ist die schon mal nicht als Bild aufrufbar.

Den Ordner(wo die geladenen Bilder gespeichert werden) mit einer .htaccess versiegeln. Dann sind die Uploads nicht über den Browser aufrufbar
 




Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:



2 Mitglieder waren innerhalb der letzten 15 Minuten online (40 heute gesamt):
romacron, wodadt

Administratoren und Moderatoren:
[keine]

Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Partnerprogramm

12% Lifetime Provision auf alle Buchungen von Dir geworbener Mitglieder sowie 0,50 € für jede Registrierung. Eines der besten deutschen Partnerprogramme laut den appCharts von 100partnerprogramme.de. Nimm jetzt teil am Seitenreport Partnerprogramm und verdiene gutes Geld dabei!

* = Partnerlinks