MIME-Sniffing
Was ist MIME-Sniffing?
MIME-SniffingBrowser-Verhalten, den Content-Type einer Antwort aus deren Bytes zu erraten - kann ausgenutzt werden, um hochgeladene Dateien als Skripte auszufuhren.
MIME-Sniffing ist ein Alt-Feature der Browser, bei dem der Browser die ersten Bytes einer Antwort inspiziert und den vom Server deklarierten Content-Type-Header uberschreibt, um die Ressource sinnvoller darzustellen. Angreifer missbrauchen dies, wenn eine Anwendung von Nutzern hochgeladene Dateien mit einem falschen oder generischen Typ ausliefert: Eine Datei mit HTML oder JavaScript kann als text/html geschnuppert und im Origin des Opfers ausgefuhrt werden, was Stored XSS ermoglicht.
Das Verhalten geht auf fruhe Versionen des Internet Explorer zuruck, dessen aggressives Sniffing eine beruchtigte Quelle von XSS durch "Content-Type-Verwechslung" war; Microsoft fuhrte die Opt-out-Option X-Content-Type-Options: nosniff in IE8 (2008) ein, und sie ist heute durch den MIME Sniffing Standard der WHATWG-Fetch-Spezifikation standardisiert. Das Senden von nosniff zwingt den Browser, den deklarierten Typ zu respektieren und die Ausfuhrung eines Skripts oder Stylesheets zu verweigern, dessen Content-Type nicht zum Ziel der Anfrage passt. Moderne Hartung staffelt mehrere Kontrollen: jede vom Nutzer bereitgestellte Datei mit einem korrekten, spezifischen Content-Type und gegebenenfalls einem Content-Disposition: attachment ausliefern, Nutzerinhalte auf einem separaten Sandbox-Origin hosten und eine restriktive Content-Security-Policy durchsetzen. Sicherheitsscanner und Header-Bewerter (zum Beispiel Mozilla Observatory) markieren jede HTML-Antwort, der nosniff fehlt.
flowchart TD
A[Nutzer ladt eine Datei hoch] --> B[App liefert sie zuruck<br/>mit falschem/generischem Typ]
B --> C{X-Content-Type-Options:<br/>nosniff gesetzt?}
C -- Nein --> D[Browser schnuppert Bytes,<br/>rendert als text/html]
D --> E[Stored XSS wird ausgefuhrt<br/>im Origin des Opfers]
C -- Ja --> F[Browser respektiert<br/>den deklarierten Typ]
F --> G[Datei wird heruntergeladen, nicht ausgefuhrt]● Beispiele
- 01
X-Content-Type-Options: nosniff
- 02
Ein Avatar-Upload-Endpunkt, der image/png zuruckgibt, wahrend die Datei HTML ist; ohne nosniff fuhrt der Browser sie als Seite aus.
● Häufige Fragen
Was ist MIME-Sniffing?
Browser-Verhalten, den Content-Type einer Antwort aus deren Bytes zu erraten - kann ausgenutzt werden, um hochgeladene Dateien als Skripte auszufuhren. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet MIME-Sniffing?
Browser-Verhalten, den Content-Type einer Antwort aus deren Bytes zu erraten - kann ausgenutzt werden, um hochgeladene Dateien als Skripte auszufuhren.
Wie schützt man sich gegen MIME-Sniffing?
Schutzmaßnahmen gegen MIME-Sniffing kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.