X-XSS

Mit dem Einschleusen von JavaScript Code, auch Cross-Site Scripting (XSS) genannt, entstehen der Wirtschaft jährlich enorme Schäden und stellt somit eine enorme Gefahr dar. Wird der Website Schadcode eingeschleust können komplette Datensätze der Benutzerdaten und / oder sogar Phishing-Seiten untergemogelt werden. Du als Website-Betreiber kannst aber mit dem XSS-Protection Header eine Schutzmaßnahme gegen XSS-Angriffe aktivieren.

Schutz vor Cross-Site-Scripting Angriffen

X-Header Einträge sind Anweisungen für den Webbrowser um gewisse Funktionen einzuschränken. Durch die Einschränkungen im Broweser wird natürlich auch die Websitesicherheit 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.

Mit der Option 0 wird der Filter deaktiviert. Die Option 1 hingegen aktiviert die XSS-Filterung. 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 Google Chrome Browser 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  

X-XSS Protection Header einbinden

Bei einem Apache-Webserver kann der Eintrag einfach in die .htaccess-Datei erfolgen:

# <IfModule mod_headers.c>   
#   Header always append X-XSS-Protection "1; mode=block"   
# </IfModule>

Für den Nginx kann der X-XSS-Protection Eintrag wie folgt erfolgen:

# add_header "X-XSS-Protection" "1; mode=block";

Alternativ kann man den Header-Eintrag auch direkt in PHP setzen:

# header ("X-XSS-Protection: 1; mode=block");

Der Header kann hierbei einfach hinzugefügt werden und erhöht die Sicherheit deiner 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.