Sichere Datei-Uploads in Webanwendungen

Aus HOSTING-STATION55 - Webhosting Wiki / FAQ
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.

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

  1. Prüfen Sie Anmeldung und Berechtigung vor Annahme der Datei.
  2. Begrenzen Sie Anfrage und Datei, bevor große Daten vollständig verarbeitet werden.
  3. Speichern Sie zunächst in einem nicht öffentlichen Quarantänebereich.
  4. Prüfen Sie Typ und Inhalt mit geeigneten Bibliotheken.
  5. Erzeugen Sie den internen Dateinamen selbst.
  6. Verschieben Sie nur akzeptierte Dateien in den endgültigen Speicher.
  7. Liefern Sie Downloads mit korrektem Content-Type und sicherer Inhaltsdisposition aus.

Häufige Fehler

Doppelte Endung
Namen wie bild.jpg.php dü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.

Verwandte Artikel