Der HTTP-Header X-XSS-Protection
schützt vor reflektierten Cross-Site-Scripting-Attacken (Reflected XSS). Das Ein- bzw. Ausschalten des Schutzes geschieht über die Werte 0
und 1
.
Beispiel mit aktiviertem Schutz:
X-XSS-Protection: 1
Standardmäßig wird nur der kritische Inhalt aus der Ausgabeseite entfernt. Um betroffene Seiten ganz zu blockieren, bekommt der Parameter mode
hier den Wert block
:
X-XSS-Protection: 1; mode=block
Funktionsweise
Bei reflektierten Cross-Site-Scripting-Attacken wird Schadcode via URL oder POST-Parameter an den Server übergeben, der diesen möglicherweise in der Ausgabe wiederholt (reflektiert), beispielsweise beim Zitat des Suchbegriffs auf einer Suchergebnisseite.
Browser können solche Angriffsversuche durch Vergleich von Request und Response erkennen und die Anzeige der Ergebnisseite blockieren oder die Ausgabe bereinigen, falls dies durch Setzen des X-XSS-Protection
-Headers gewünscht wurde.
In den Browsern Chrome und Chromium kann zusätzlich ein Report an den Webseitenbetreiber gesendet werden. Über den parameter report
kann dazu eine Reporting-URI angegeben werden:
XSS-Protection: 1; mode=block; report=https://example.com/log.cgi
Einschränkungen und Alternativen
Dieser Header wird nicht von allen Browsern unterstützt, da hiermit nur bestimmte Arten von Cross-Site-Scripting-Attacken blockiert werden können. Umfassenderen Schutz bietet ein CSP-Header.