scheible.it - Tobias Scheible
Angriffe blocken
Sonntag, 08. Mai 2016
0 Kommentare

XSS-Protection Header – Schutz vor Angriffen

Das Einschleusen von JavaScript Code, auch Cross-Site Scripting (XSS) genannt, stellt eine enorme Gefahr dar. Damit können Daten von anderen Benutzern geklaut werden oder Phising-Seiten untergemogelt werden. Website-Betreiber können aber mit dem XSS-Protection Header eine Schutzmaßnahme gegen XSS-Angriffe einfach aktivieren.

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.

Über Tobias Scheible

Tobias Scheible

Ich arbeite als wissenschaftlicher Mitarbeiter an der Hochschule Albstadt-Sigmaringen. Dort bin ich in den Bereichen IT-Sicherheit und IT-Forensik tätig. Darüber hinaus beschäftige ich mich seit 2001 mit der Planung und Umsetzung von individuellen Web-Anwendungen. Mein Wissen teile ich gerne hier in meinem Blog, bei Vorträgen und auf Workshops.

Alle Blog-Artikel Über mich Facebook Twitter Xing

Kommentare

Es wurde noch kein Kommentar abgegeben.

Schreibe einen Kommentar!

Hilfe zum Kommentieren

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen oder eine Gefährdung anderer Besucher darstellen, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

Ihre E-Mailadresse wird nicht veröffentlicht. Mit dem Absenden anerkennen Sie die Datenschutzerklärung des Blogs.

nach oben