CSP-Generator und Prüfer

Tragen Sie Ihre Richtlinie ein, eine Direktive pro Zeile oder durch Semikola getrennt. Sie erhalten den Header zum Kopieren, eine Tabelle mit der Regel, die für Skripte, Stile, Bilder und andere Ressourcen gilt, und Hinweise zu Werten, die die Richtlinie schwächen.

Kostenlos Läuft in Ihrem Browser Stand: Dienstag, 10. November 2026

Direktiven wie default-src 'self'. Trennen Sie sie mit einem Semikolon oder einem Zeilenumbruch. Die Namen der Direktiven unterscheiden keine Groß- und Kleinschreibung.

Auslieferung

Report-Only ist der Header, mit dem Sie eine Richtlinie testen, bevor Sie sie erzwingen. Der Headername steht in der Headerzeile.

Ergebnis

Headerzeile — Kopieren Sie sie in die Servereinstellungen oder in die Header-Konfiguration Ihres Frameworks.
Prüfung — Jeder Hinweis steht unter dem Ergebnis.
Headerzeile
Geltende Regel je Ressource

Dieses Werkzeug läuft in Ihrem Browser. Was Sie eingeben, wird nicht an uns gesendet.

So verwenden Sie es

  1. Tragen Sie die Direktiven in Richtlinie ein, eine pro Zeile, mit ihren Namen genau so, wie sie geschrieben sind, etwa script-src.
  2. 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.
  3. Lesen Sie Geltende Regel je Ressource, um zu sehen, welche Direktive Skripte, Stile, Bilder und Frames abdeckt.
  4. 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

Zahlen und Text zuletzt geprüft: Dienstag, 10. November 2026.

Wir verwenden notwendige Cookies, damit die Website funktioniert. Mit Ihrer Einwilligung verwendet Google außerdem Werbe-Cookies, um personalisierte Anzeigen zu zeigen. Wenn Sie diese ablehnen, sehen Sie weiterhin Anzeigen, sie werden aber nicht personalisiert.