X-XSS-Protection war ein Sicherheitsheader, den es seit Version 4 von Google Chrome gibt. Es wurde entwickelt, um ein Tool zu ermöglichen, das den Inhalt der Website auf reflektiertes Cross-Site-Scripting überprüft. Alle großen Browser haben jetzt die Unterstützung für den Header eingestellt, da er Sicherheitslücken einführte. Es wird dringend empfohlen, den Header überhaupt nicht festzulegen und stattdessen eine starke Inhaltssicherheitsrichtlinie zu konfigurieren.
Tipp: Cross-Site Scripting wird im Allgemeinen auf die Abkürzung „XSS“ abgekürzt.
Reflected Cross-Site-Scripting ist eine Klasse von XSS-Schwachstellen, bei denen der Exploit direkt in der URL kodiert ist und nur den Benutzer betrifft, der die URL besucht. Reflected XSS ist ein Risiko, wenn die Webseite Daten von der URL anzeigt. Wenn Sie beispielsweise in einem Webshop nach Produkten suchen können, hat er möglicherweise eine URL, die wie folgt aussieht: „website.com/search? Begriff=Geschenk“ und fügen Sie das Wort „Geschenk“ auf der Seite ein. Das Problem beginnt, wenn jemand JavaScript in die URL einfügt. Wenn sie nicht ordnungsgemäß bereinigt wird, könnte dieses JavaScript ausgeführt werden, anstatt wie es auf dem Bildschirm angezeigt werden sollte. Wenn ein Angreifer einen Benutzer dazu verleiten könnte, mit dieser Art von XSS-Nutzlast auf einen Link zu klicken, kann er beispielsweise seine Sitzung übernehmen.
X-XSS-Protection sollte diese Art von Angriffen erkennen und verhindern. Leider wurden im Laufe der Zeit eine Reihe von Umgehungen und sogar Schwachstellen in der Funktionsweise des Systems gefunden. Diese Schwachstellen führten dazu, dass die Implementierung des X-XSS-Protection-Headers eine Cross-Site-Scripting-Schwachstelle in eine ansonsten sichere Website einführen würde.
Um sich davor zu schützen, gilt im Allgemeinen der Header der Inhaltssicherheitsrichtlinie zu „CSP“ abgekürzt, enthält Funktionen zu deren Ersetzung, Browser-Entwickler haben beschlossen, die Besonderheit. Die meisten Browser, einschließlich Chrome, Opera und Edge, haben die Unterstützung entweder entfernt oder im Fall von Firefox nie implementiert. Es wird empfohlen, dass Websites den Header deaktivieren, um Benutzer zu schützen, die noch ältere Browser mit aktivierter Funktion verwenden.
X-XSS-Protection kann durch die Einstellung „unsafe-inline“ im CSP-Header ersetzt werden. Das Aktivieren dieser Einstellung kann je nach Website viel Arbeit erfordern, da das gesamte JavaScript in externen Skripten enthalten sein muss und nicht direkt in den HTML-Code eingefügt werden kann.