Sichere Datei-Uploads in Webanwendungen
Zur Navigation springen
Zur Suche springen
Datei-Uploads verbinden nicht vertrauenswürdige Benutzerdaten mit dem Serverdateisystem. Eine Prüfung nur anhand der Dateiendung oder des vom Browser gemeldeten Content-Type reicht nicht aus.
Inhaltsverzeichnis
Schutzmaßnahmen
- nur geschäftlich benötigte Dateitypen erlauben
- Endung, tatsächlichen Dateityp und Dateistruktur prüfen
- Größen-, Pixel-, Seiten- und Mengenlimits setzen
- serverseitig einen zufälligen Dateinamen vergeben
- ursprünglichen Namen nur als bereinigte Metadaten behalten
- Uploads außerhalb ausführbarer Webverzeichnisse speichern
- Ausführung von Skripten im Uploadbereich verhindern
- Zugriff und Download serverseitig autorisieren
- bei erhöhtem Risiko Malwareprüfung oder sichere Konvertierung einsetzen
Sicherer Ablauf
- Prüfen Sie Anmeldung und Berechtigung vor Annahme der Datei.
- Begrenzen Sie Anfrage und Datei, bevor große Daten vollständig verarbeitet werden.
- Speichern Sie zunächst in einem nicht öffentlichen Quarantänebereich.
- Prüfen Sie Typ und Inhalt mit geeigneten Bibliotheken.
- Erzeugen Sie den internen Dateinamen selbst.
- Verschieben Sie nur akzeptierte Dateien in den endgültigen Speicher.
- Liefern Sie Downloads mit korrektem Content-Type und sicherer Inhaltsdisposition aus.
Häufige Fehler
- Doppelte Endung
- Namen wie
bild.jpg.phpdürfen nicht anhand des ersten Bestandteils akzeptiert werden.
- SVG oder HTML als Bild
- Diese Formate können aktive Inhalte enthalten und brauchen eine eigene Sicherheitsentscheidung.
- Originalname wird als Pfad verwendet
- Pfadbestandteile und Sonderzeichen können zu Überschreiben oder Path Traversal führen.

