Was ist eine Content Security Policy?
CSP (Content Security Policy) ist ein Sicherheitskonzept, das von der Mozilla Foundation entwickelt wurde. Es verhindert Cross-Site-Scripting und andere Angriffsformen, die Daten auf einer Webseite einschleusen. Die Policy wird im Header der Webseiten vereinbart, der Name des HTTP-Header-Felds lautet "Content-Security-Policy". Mit der Policy wird festgelegt, welche dynamischen Ressourcen über den HTTP Header geladen werden dürfen.
Welche Browser unterstützen die Content Security Policy?
Eine erste experimentelle Unterstützung von CSP (Content Security Policy) geht auf Firefox in der Version 4.0 zurück. Heute unterstützen der Internet Explorer 10 und 11 CSP über die "X-Content-Security-Policy". Google Chrome unterstützt das Sicherheitskonzept seit der Version 25, Mozilla Firefox seit Version 23 und Safari seit Version 10.
Warum ist CSP wichtig?
Führt eine Webseite einen Code mit aktiven Inhalten aus, darf dieser nicht auf Inhalte aus anderen Quellen zugreifen. Der korrekte Zugriff wird über die Same-Origin-Policy geregelt. Durch maskierten Code lässt sich diese Regel allerdings unterwandern und der Browser weiß nicht, dass der schädliche Code von einer anderen Webseite stammt. Webmaster verhindern diese Angriffsform mit der Content Security Policy. Die Policy sorgt für die Trennung vom HTML-Code der Webseite und den externen JavaScript-Dateien. Damit verhindert CSP Cross Site Scripting, indem Regeln für erlaubte Skripte aufgestellt werden. Auch Packet-Sniffing lässt sich mit dem Sicherheitskonzept eindämmen. Der Server legt fest, welche Web-Protokolle geladen werden können. Im Idealfall ist nur das Laden von HTTPS erlaubt.
Wie funktioniert eine Content Security Policy?
Der Webserver definiert die geltende CSP über den HTTP-Header der ausgelieferten Webseite. Bei Apache-Servern erfolgt dies meist über die .htaccess-Datei. Eine Definition der Regel nach der CSP-Spezifikation Version 1.0 sieht in der Datei so aus, folgende Zeile wird hinzugefügt:
~
Header set Conent-Security-Policy "default-src 'self'"
~
Die Zeile besagt, dass der Inhalt einer Seite nur von der eigenen Domain geladen werden kann.
Eine ausführliche Auflistung zusätzlicher Parameter und weitere Beispiele befinden sich auf der Seite Content-Security-Poliy.com.