XSS-Bremse Content Security Policy
Seite 2: Aller Anfang ist leicht
Aller Anfang ist leicht
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.
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.