XSS-Bremse Content Security Policy

Seite 2: Aller Anfang ist leicht

Inhaltsverzeichnis

Eine Content Security Policy definiert der Webserver über den HTTP-Header der ausgelieferten Seite. Bei Apache-Servern definiert man den Header am einfachsten über eine htaccess-Datei, die sich im gleichen Ordner wie die auszuliefernde Webseite oder darüber befindet. Eine einfache Policy nach Version 1.0 der CSP-Spezifikation setzt man durch, indem man der Datei die folgende Zeile hinzufügt:

Header set Content-Security-Policy "default-src 'self'"

Damit erreicht man derzeit vor allem Nutzer von Google Chrome, da dieser Browser der Vorreiter in puncto CSP-Unterstützung ist. Firefox und Safari verstehen die meisten Befehle derzeit über die CSP-Vorabversionen X-Content-Security-Policy respektive X-Webkit-CSP. Um auch die Nutzer dieser Browser schon jetzt zu schützen, kann man dem Webserver befehlen, diese Varianten parallel mit auszuliefern:

Header set X-Content-Security-Policy "default-src 'self'"
Header set X-Webkit-CSP "default-src 'self'"

Traut man aktuellen Browser-Statistiken, profitieren von den obigen drei Zeilen zusammengenommen über 70 Prozent der Internetnutzer in Deutschland. Der Internet Explorer unterstützt seit Version 10 immerhin eine der CSP-Schutzfunktionen, nämlich die Sandbox. Opera kann derzeit noch nichts mit dem CSP-Header anfangen. Das dürfte sich aber mit dem vorstehenden Wechsel auf die WebKit-Engine, die auch Chrome und Safari nutzen, ändern.

Dass noch nicht alle Browser den CSP-Header auswerten, ist kein Grund, mit der Umsetzung zu warten: Das Konzept ist voll abwärtskompatibel. Schenkt der Browser der Policy keine Beachtung, ist die Seite trotzdem uneingeschränkt nutzbar – allerdings ohne das Plus an Schutz.

Bei Verstößen gegen die Policy spricht der Browser Klartext. Das erleichtert die Fehlersuche beim Zusammenbau eigener Richtlinien.

Wer die Schutzfunktion erst mal probeweise einsetzen will, hängt ein "-Report-Only" an den Header-Namen. Dann blockiert der Browser eventuelle Verletzungen der Policy nicht. Sowohl im Report-Only- als auch im regulären Modus gibt der Browser über seine Konsole Laut, wenn es zu Policy-Verstößen kommt. Die Konsole erreicht man etwa bei Chrome und Firefox über Strg+Umschalt+J und das Menü. Die Berichte sind erfreulich ausführlich und eine wertvolle Hilfe auf dem Weg zur individuellen Sicherheitsrichtlinie. Einige der Meldungen gehen unter Umständen auf das Konto von Browser-Erweiterungen, die den Quellcode der geöffneten Seite manipulieren und dabei die CSP verletzen.