Content Security Policy
Content Security Policy bezeichnet ein Konzept, das von der Mozilla-Foundation entwickelt wurde und diverse Angriffsmöglichkeiten auf Computer verhindern soll. Das W3C arbeitet die weiteren Aktualisierungen des Browser-Layers aus. Webmaster fügen die Content Security Policy einer Website über den http-Header hinzu.
Hintergrund
Wenn auf einer Website ein Code mit aktiven Inhalten ausgeführt wird, darf der Code nicht auf Inhalte einer anderen Quelle zugreifen. Dieser Vorgang wird durch die Same-Origin-Policy geregelt. Auf diese Weise wird gesichert, dass Angreifer über eigenen Code nicht auf Inhaltselemente einer Website zugreifen können. Allerdings kann diese Regel durch maskierten Code unterwandert werden. Der Browser erkennt dann nicht, dass der Schadcode von einer anderen Quelle stammt und lädt die Website sowie den manipulierten Code. Mit der Content Security Policy soll diese Form von Angriffen unterbunden werden, indem der HTML-Code der Website und externe JavaScript-Dateien getrennt werden.
Aufgaben
Die Hauptaufgabe der Content Security Policy besteht darin, Cross Site Scripting zu unterbinden und davor zu warnen. Durch die Einbindung der Policy lassen sich Regeln aufstellen, welche Skripte geladen werden dürfen. In einem zweiten Schritt kann über die Content Security Policy Packet-Sniffing eingedämmt werden, indem der Server bestimmt, welche Web-Protokolle geladen werden dürfen. Im Idealfall wäre das ausschließlich https.
Beispiele
Wird eine Content Security Policy erstellt, verwendet der Webmaster dafür verschiedene Direktiven, die wiederum die Policy für einzelne Ressourcen oder Gebiete bestimmen. Die Content Security Policy wird dann als http-Header auf jeder Webseite eingefügt, wo die Policy gelten soll. Dem User-Agent wird dadurch vorgegeben, welche Elemente er laden darf und welche nicht. So können zum Beispiel Bilder nur von bestimmten Ressourcen geladen werden, die als „sicher“ definiert werden. Der http-Header kann dann so aussehen:
Content-Security-Policy: policy
Die Syntax für Policies und Direktiven besteht dann aus einem String, der einzelne Direktiven durch Semikolon trennt.
Jede Policy muss dabei eine default-src Direktive erhalten, wenn für bestimmte Ressourcen keine Regeln definiert wurden.
Folgende Szenarios sind möglich[1]
- der gesamte Content einer Seite soll nur von der eigenen Domain geladen werden, auch bei Subdomains
Content-Security-Policy: default-src 'self'
- die Inhalte einer vertrauensvollen Seite und ihrer Subdomains dürfen geladen werden
Content-Security-Policy: default-src 'self' *.vertrauenswürdigeseite.com
- der gesamte Content soll nur über eine SSL-Verschlüsselung geladen werden
Content-Security-Policy: default-src https://onlinebanking.meineseite.com
Nutzen für Online-Marketing
Verwenden Webmaster eine Content Security Policy, erhöhen sie dadurch die Sicherheit für die User ihrer Website. Die Gefahr, durch gängige Angriffsvarianten wie Cross-Site-Scripting vertrauenswürdige Daten preiszugeben, kann durch das Einfügen des selbst konfigurierten http-Headers minimiert werden.
Einzelnachweise
- ↑ Using Content Security Policy developer.mozilla.org Abgerufen am 13.03.2015
Weblinks
- Content Security Policy Level 2
- Beispiele für Content Security Policies
- Content Security Policy Tutorial
- Introducing Content Security Policy