So verwenden Sie es
- Tragen Sie die Direktiven in Richtlinie ein, eine pro Zeile, mit ihren Namen genau so, wie sie geschrieben sind, etwa script-src.
- Wählen Sie unter Auslieferung: Content-Security-Policy erzwingt die Richtlinie, Content-Security-Policy-Report-Only ist der Header, mit dem Sie sie zuerst testen.
- Lesen Sie Geltende Regel je Ressource, um zu sehen, welche Direktive Skripte, Stile, Bilder und Frames abdeckt.
- Kopieren Sie die Headerzeile auf Ihren Server und beheben Sie jeden Hinweis, der unter dem Ergebnis steht.
Welche Regel für eine Ressource gilt
Ein Browser prüft jede Art von Ressource gegen eine Direktive. Fehlt sie, fällt er auf eine Kette zurück, und die Tabelle zeigt die Kette, der er gefolgt ist. Die Ketten stammen aus CSP Level 3, Abschnitt 6.8.3.
- Skripte: script-src-elem, dann script-src, dann default-src.
- Inline-Ereignishandler: script-src-attr, dann script-src, dann default-src.
- Stylesheets: style-src-elem, dann style-src, dann default-src. Inline-style-Attribute folgen demselben Muster mit style-src-attr.
- Frames: frame-src, dann child-src, dann default-src.
- Worker: worker-src, dann child-src, dann script-src, dann default-src.
- Bilder, Schriften, Medien, Objekte, Manifeste und Fetch-Anfragen: die eigene Direktive, dann default-src.
Was der Prüfer liest
Direktiven werden durch Semikola getrennt; dieses Werkzeug nimmt auch Zeilenumbrüche an. Ein Name wird bis zum ersten Leerzeichen gelesen und unterscheidet keine Groß- und Kleinschreibung. Kommt eine Direktive zweimal vor, zählt die erste, und die Wiederholung wird übersprungen (CSP Level 3, Abschnitt 2.2.1).
- Schlüsselwörter wie 'self' und 'none' stehen in einfachen Anführungszeichen. 'none' muss in seiner Liste allein stehen.
- Ein Nonce ist 'nonce-' gefolgt von einem Base64-Wert. Ein Hash ist sha256, sha384 oder sha512, ein Bindestrich und ein Base64-Wert (Abschnitt 2.3.1).
- Ein Komma ist innerhalb eines Direktivenwerts nicht erlaubt, weil es im Header Richtlinien trennt.
Was der Prüfer nicht tut
- Er lädt die Seite nicht und testet die Richtlinie nicht in einem Browser. Die Tabelle zeigt die Regel, die ein Browser anwenden würde, nicht, ob Ihre Seite danach noch funktioniert.
- Er prüft die Schreibweise von Schlüsselwörtern, Nonces und Hashes, aber nicht Host- und Schema-Quellen im Detail.
- Er beurteilt keine Direktiven, die er nicht aufführt, etwa sandbox. Sie bleiben unverändert in der Headerzeile.
Durchgerechnetes Beispiel: die Beispielrichtlinie
Mit der Beispielrichtlinie nutzen Skripte script-src, weil script-src-elem fehlt. Frames haben weder frame-src noch child-src, daher fallen sie auf default-src zurück. Worker haben weder worker-src noch child-src, daher nutzen sie script-src. Die Direktive style-src enthält 'unsafe-inline', und der Prüfer meldet das als einen Hinweis.
| Ressource | Geprüft in dieser Reihenfolge | Verwendete Regel |
|---|---|---|
| Skripte (script-Elemente) | script-src-elem, script-src, default-src | script-src |
| Frames (iframe) | frame-src, child-src, default-src | default-src |
| Worker | worker-src, child-src, script-src, default-src | script-src |
Häufig gestellte Fragen
Warum zeigt die Tabelle eine Regel für Skripte, die ich nicht geschrieben habe?
Eine Ressource ohne eigene Direktive nutzt die Direktive, auf die sie zurückfällt. Für Skripte ist das script-src-elem, dann script-src, dann default-src. Die Tabelle zeigt die Regel, die ein Browser anwenden würde; ein fehlendes script-src kann Ihnen also trotzdem eine Regel liefern.
Was erlaubt 'unsafe-inline'?
Es erlaubt Inline-Skripte oder Inline-Stile an den Stellen, die die Direktive abdeckt. Ein Nonce oder ein Hash in derselben Quellenliste lässt Browser 'unsafe-inline' ignorieren (CSP Level 3, Abschnitt 6.7.3.2). Verwenden Sie daher eines davon für den Inline-Code, den Sie brauchen.
Soll ich report-uri oder report-to schreiben?
Verwenden Sie report-to. MDN beschreibt es als die Direktive, die report-uri ersetzt. Solange report-to nicht breit unterstützt wird, rät MDN, beide zu senden, und der Prüfer warnt, wenn report-uri vorhanden ist.
Warum ist eine Direktive als unbekannt markiert?
Der Prüfer beurteilt nur die Direktiven, die Browser ausliefern und MDN dokumentiert. Ein Name, den er nicht kennt, bleibt unverändert in der Headerzeile, steht aber nicht in der Tabelle und wird nicht beurteilt.
Sendet das Werkzeug meine Richtlinie irgendwohin?
Nein. Die Headerzeile entsteht in Ihrem Browser. Was Sie eingeben, wird weder an uns übermittelt noch gespeichert, und die Richtlinie wird auf keiner Website getestet.
Ist CSP Level 3 ein endgültiger Standard?
Noch nicht. Der Text, dem dieser Prüfer folgt, ist ein Working Draft des W3C vom 27. Oktober 2026, ein Entwurf auf dem Weg zur Empfehlung. Lesen Sie die aktuelle Fassung, bevor Sie sich in einer produktiven Richtlinie auf eine Regel verlassen.
Quellen
- CSP Level 3 (englisch), W3C Working Draft vom 27. Oktober 2026 (Abschnitte 2.2, 2.3.1, 4.4.1, 6.7.3.2 und 6.8.3)
- MDN (englisch): Header Content-Security-Policy, seine Direktiven und ihr Zurückfallen
Zahlen und Text zuletzt geprüft: Dienstag, 10. November 2026.