Bei den sogenannten X-Header Einträgen handelt es sich um Anweisungen für Webbrowser, um bestimmte Funktionalitäten einzuschränken. Damit wird die Sicherheit einer Website erhöht. Der X-XSS-Protection Header soll helfen, Cross-Site Scripting (XSS)-Angriffe abzuwehren. Bei einem XSS-Angriff wird JavaScript-Code über eine ungesicherte Eingabe auf einer Website eingeschleust.
Die Option 0 deaktiviert den Filter. Mit der Option 1 wird die XSS-Filterung aktiviert. Wenn ein Cross-Site-Scripting-Angriff erkannt wird, wird der Browser die unsicheren Teile entfernen. Wird die Option mode=block gesetzt, wird bei einem erkannten Angriff der gesamte Seitenaufruf geblockt, anstatt nur den Schadcode zu entfernen.
X-XSS-Protection: 0|1; mode=block
Der Webbrowser Google Chrome kennt noch als weitere Option den report. Dabei werden erkannte Angriffe an die angegebene URL übertragen.
X-XSS-Protection: 1; mode=block; report=https://example.com/report.php
XSS-Protection Header einbinden
Bei einem Apache-Webserver kann der Eintrag direkt in die .htaccess-Datei erfolgen:
<IfModule mod_headers.c> Header always append X-XSS-Protection "1; mode=block" </IfModule>
Bei Nginx kann der X-XSS-Protection Eintrag wie folgt erfolgen:
add_header "X-XSS-Protection" "1; mode=block";
Alternativ kann der Header-Eintrag auch direkt in PHP gesetzt werden:
header ("X-XSS-Protection: 1; mode=block");
Der Header kann hierbei einfach hinzugefügt werden und erhöht die Sicherheit einer Website. Allerdings ist diese Schutzmaßnahme in modernen Browsern weitgehend unnötig, da es mit der Content-Security-Policy bereits eine bessere Methode gibt, die die Verwendung von Inline-JavaScript („unsafe-inline“) deaktiviert. Der XSS-Protection Header-Eintrag wird deshalb auch nicht von Firefox unterstützt. Dennoch kann der Header-Eintrag Schutz für Benutzer älterer Webbrowser bieten, die noch keine Content-Security-Policy Header unterstützen.