Tipps zum Datei-Upload mit PHP: Dos und Don'ts
Kommentare

Chris Cornutt behandelt in seinem Blog das sensible Thema von Datei-Uploads. Dabei gibt er Tipps, wie man Dateitypen beschränkt, den MIME-Typ prüft und Dateinamen validiert. Empfangene Dateien sollten

Chris Cornutt behandelt in seinem Blog das sensible Thema von Datei-Uploads. Dabei gibt er Tipps, wie man Dateitypen beschränkt, den MIME-Typ prüft und Dateinamen validiert. Empfangene Dateien sollten zunächst im /tmp-Verzeichnis abgelegt werden, da eingeschleuste PHP-Skripte im Dokument-Verzeichnis „Löcher von Personengröße“ in das System reißen könnten. Zuletzt empfiehlt Cornutt, bestimmte Dateien wie .htaccess-Files gezielt zu blockieren, da solche Skripte und Konfigurationsdateien die Server-Software unvorhersehbar manipulieren könnten.

Als weitere Vorsichtsmaßnahmen schlägt Cornutt vor, dass man den Referrer der Uploader überprüfen könnte, um Spammer frühzeitig auszusieben. Aber er sagt selbst, dass diese Methode nicht zuverlässig sei, da versierte Hacker den Referrer manipulieren. Des Weiteren könntet Ihr Dateien nach dem Upload umbenennen, um sie von außen schwerer identifizierbar zu machen (vermeidet Hotlinking und macht eingeschleuste Skripte weniger gefährlich). Letzteres würde ein Tracking-Management benötigen, um die Datei dem autorisierten Nutzer wieder bereitzustellen.

Im letzten Schritt warnt Cornutt davor, dem mit Fileinfo ermittelten MIME-type der Datei zu vertrauen. Daher sollte in jedem Fall der Download forciert werden, falls ein Nutzer seine Datei wieder herunterladen möchte. Dies geschieht über den Header Content-Disposition: attachment;. Genauere Erläuterungen dazu findet Ihr im Blog-Eintrag des PHPDeveloper.org-Autors.

Zum Upload von Bildern geben einige Entwickler im PHP-Subreddit den Tipp, die Dateien nach Empfang zu encodieren, damit eventuell vorhandener Schadcode zerstört wird. Auch in der PHP-Manual finden sich zahlreiche Tipps, die jeder überfliegen sollte, der sich um die Sicherheit seiner Uploads sorgt.

Habt Ihr noch Anregungen zu Datei-Uploads auf PHP-Servern? Oder Erfahrungen mit Hackern, die trotz diverser Vorkehrungen Euer System lahmlegen konnten? Gerne könnt Ihr Euch über die Kommentarfunktion zum Thema sicherer Datei-Uploads mit PHP austauschen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -