CSP - Content Security Policy
- Server gibt vor, wohin der Browser sich verbinden darf
- Schutz gegen XSS mit
<script src="..." />
-
Wird geschickt per HTTP-Header
X-Content-Security-Policy
-
Beispiel:
X-Content-Security-Policy script-src self ajax.google.com
- Erlaubt nur Skripte von der Domain selbst und ajax.google.com
- Gibt für Objekte wie css, bilder, etc. eigene policies
- XHRs werden über
connect-src
gesteuert!
- XHRs werden über
self
erlaubt Requests auf den eigenen Host (wie standard Cross-Origin-Policy)default-src: 'none'
als ersten Wert fungiert als "Deny all", nachher können Ausnahmen definiert werden- HXR-requests gehen über
connect-src
- Für Debugging kann mit
report-uri
und dem HeaderContent-Security-Policy-Report-Only
eine uri angegeben werden- Der Browser enforced die Policy nicht, aber schickt violations an die angegebene uri
- Angreifer kann das ausnutzen, wenn er CSP verändern kann - die Violations zu sich schicken lassen und so URLs herausfinden
- Es können jeweils mehrere Werte mit Space getrennt angegeben werden, z.B. um Google Analytics einzubinden:
script-src 'self'; www.google-analythics.com