Sicherheit
Datei-Upload-Feld ohne Typ-Einschränkung
Woran du es erkennst
Ein Datei-Eingabefeld akzeptiert beliebige Dateitypen (kein accept-Attribut), oder sein Upload-Formular sendet an eine http://-Adresse. Passiv aus dem Markup beobachtet — es wurde keine Datei hochgeladen.
Warum es zählt
Ein Upload ohne client- UND serverseitige Typ-Begrenzung ist der klassische Weg für Webshells, gespeichertes XSS über SVG/HTML und Malware-Hosting. Ein http://-Uploadziel legt die Dateiinhalte zusätzlich auf dem Transportweg offen.
So behebst du es
- Setze ein accept-Attribut mit genau den Dateitypen, die das Feature braucht — als Bedienhilfe, niemals als Sicherheitsgrenze.
- Prüfe serverseitig: Endung, echten MIME-Typ (Magic Bytes), Größenlimit; speichere Uploads außerhalb des Web-Roots und liefere sie mit Content-Disposition: attachment aus.
- Lass Upload-Formulare niemals an http:// senden — das action-Ziel muss eine https://-Adresse der eigenen Origin sein.
- Scanne hochgeladene Dateien und entferne aktive Inhalte (SVG-Skripte, Polyglots), bevor sie andere Nutzer zu sehen bekommen.