Content-Security-Policy-Report-Only ist ein HTTP-Response-Header, der eine Content-Security-Policy (CSP) im Beobachtungsmodus anwendet: Der Browser setzt die Richtlinie nicht durch, meldet aber jeden Verstoß an den konfigurierten Endpunkt. So lässt sich eine neue CSP testen, ohne die Seite zu beschädigen.
Syntax
Der Header nutzt die gleichen Direktiven wie die durchsetzende CSP:
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'
Verletzungsmeldungen laufen über report-uri beziehungsweise report-to — dieselben Mechanismen wie beim Content-Security-Policy-Reporting.
Einsatzzweck
Vor einer Verschärfung der bestehenden CSP schickt man die neue Richtlinie zunächst als Report-Only-Header in Produktion. Die Reports zeigen, welche Skripte und Ressourcen blockiert würden. Sind die Meldungen aufgeräumt, wird die Richtlinie als durchsetzende Content-Security-Policy aktiviert. Beide Header können parallel gesetzt sein: die aktuelle Policy durchsetzend, die nächste im Testmodus.
Einschränkungen
- Anders als die durchsetzende CSP funktioniert der Header nicht als
<meta>-Tag — nur als HTTP-Header. - Da nichts blockiert wird, kann eine Seite im Report-Only-Modus funktionieren, obwohl die spätere echte CSP Inhalte blockieren würde (etwa bei Abhängigkeiten von Inline-Skripten).
Verwandte Grundlagen: Cross-Site-Scripting (XSS), upgrade-insecure-requests, HTTP, HTTPS, Browser.