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
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

  1. Using Content Security Policy developer.mozilla.org Abgerufen am 13.03.2015

Weblinks