Eine CSP besteht aus Direktiven wie default-src, script-src, img-src oder frame-ancestors. Alles, was nicht erlaubt ist, blockiert der Browser und meldet es in der Konsole. Das begrenzt die Wirkung von Cross-Site-Scripting erheblich.
Mit Content-Security-Policy-Report-Only testen Sie eine Richtlinie, ohne etwas zu blockieren. So sehen Sie vorab, welche eingebundenen Dienste (Analytics, Fonts, Karten) noch fehlen.
In der Praxis kollidieren CSP-Header oft zwischen Anwendung und Reverse Proxy: Nextcloud setzt eine eigene CSP, und ein zusätzlicher Header im Proxy führt dazu, dass zwei Richtlinien gelten und beide erfüllt sein müssen. Dann bleiben Seiten leer oder Viewer laden nicht.
Beispiel
Content-Security-Policy: default-src 'self'; img-src 'self' data:; frame-ancestors 'none'