Content-Security-Policy-Reporting bezeichnet das Sammeln und Auswerten von Verletzungsmeldungen, die Browser erzeugen, wenn eine Content-Security-Policy (CSP) eine Regel blockiert. Statt nur zu sperren, erfährt der Betreiber, was auf seiner Website eigentlich passiert — ein wichtiger Baustein der modernen Webentwicklung und des Sicherheits-Monitorings.
Wie ein Verletzungsbericht aussieht
Verstößt eine Seite gegen eine CSP-Direktive, baut der Browser ein JSON-Dokument und sendet es per POST an den konfigurierten Endpunkt. Der Bericht enthält unter anderem:
blocked-uri— die blockierte Ressource,violated-directive— die verletzte Direktive, etwascript-src,document-uri— die Seite, auf der der Verstoß auftrat,source-fileundline-number— Fundstelle im Quelltext.
report-uri und report-to
Die ältere Direktive report-uri (CSP Level 2) verweist direkt auf eine URL und gilt als veraltet. Die moderne Variante report-to (CSP Level 3) benennt eine Gruppe, die im Report-To-Header mit Endpunkten definiert wird; neuere Entwürfe setzen dafür den Reporting-Endpoints-Header ein. Die Browser-Unterstützung der beiden Header unterscheidet sich, daher setzen viele Seiten beide Direktiven gleichzeitig.
Reporting API als generisches System
Die zugrunde liegende Reporting API ist nicht auf CSP beschränkt: Auch COEP- und COOP-Verstöße sowie Network-Error-Logging-Meldungen laufen über dieselben Endpunkte. Eine Seite kann so die Verstöße aller Sicherheitsheader zentral auswerten.
Erst melden, dann sperren
Der Header Content-Security-Policy-Report-Only überwacht eine Richtlinie, ohne sie durchzusetzen — ideal, um eine neue CSP im Browser zu testen, bevor sie scharf geschaltet wird. Auswertungen übernehmen Dienste wie Report URI oder ein eigener Server-Endpunkt.
Verwandte Grundlagen: Content-Security-Policy, Cross-Site-Scripting, X-XSS-Protection, Cross-Origin-Embedder-Policy, HTTP.