CSP-Generator: Content-Security-Policy erstellen

CSP-Generator: Content-Security-Policy aus Direktiven wie script-src, style-src und frame-ancestors zusammenstellen, mit Warnungen und fertigen Zeilen für Server.

–

 

Header, Apache, nginx und Meta-Tag

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

So schützt eine Content Security Policy

Die Content Security Policy (CSP) ist ein HTTP-Header, mit dem Sie dem Browser sagen, aus welchen Quellen er Skripte, Styles, Bilder und andere Ressourcen laden darf. Gelingt es einem Angreifer, Code in Ihre Seite einzuschleusen (Cross-Site-Scripting), blockiert der Browser ihn, wenn die Quelle nicht erlaubt ist. Der CSP-Generator setzt die Richtlinie aus einzelnen Direktiven zusammen, ergänzt fehlende Anführungszeichen bei Schlüsselwörtern wie 'self' und warnt vor riskanten Angaben.

Die wichtigste Direktive ist script-src. 'unsafe-inline' erlaubt jedes Inline-Skript und nimmt der CSP damit einen großen Teil ihrer Wirkung. Besser sind eine Nonce, also ein Zufallswert, den Ihr Server bei jeder Antwort neu erzeugt und in die erlaubten script-Elemente schreibt, oder Hashes einzelner Skripte. Mit frame-ancestors legen Sie fest, wer Ihre Seite in einem iframe einbetten darf; das ersetzt den älteren Header X-Frame-Options.

Führen Sie eine neue Richtlinie zuerst als CSP Header im Modus Report-Only ein. Der Browser meldet Verstöße dann in der Entwicklerkonsole, blockiert aber nichts. Erst wenn keine berechtigten Ressourcen mehr auftauchen, schalten Sie auf den normalen Header um. Per Meta-Tag funktionieren frame-ancestors, report-uri und sandbox nicht; nutzen Sie dafür den HTTP-Header.

Anleitung: CSP-Generator in 4 Schritten

  1. Mit default-src den Standard für alle Ressourcen setzen, meist 'self'.
  2. Für script-src, style-src, img-src, connect-src und die übrigen Direktiven nur die Quellen eintragen, die Ihre Seite wirklich braucht.
  3. Häkchen wie „Google Fonts erlauben“, „Nonce für Skripte“ oder „upgrade-insecure-requests“ setzen und frame-ancestors festlegen.
  4. Zunächst „Nur melden (Report-Only)“ aktivieren, optional eine report-uri angeben und die Zeilen für Header, Apache, nginx oder Meta-Tag kopieren.

Typische Anwendungsfälle

  • Eine bestehende Website gegen Cross-Site-Scripting absichern, ohne gleich Inhalte zu blockieren, dank Report-Only.
  • Clickjacking verhindern, indem frame-ancestors festlegt, wer die Seite einbetten darf.
  • Externe Dienste wie Google Analytics 4 oder YouTube-Einbettungen gezielt freigeben.
Fragen

Häufige Fragen

Wo trage ich den CSP-Header ein?

In der Serverkonfiguration (Apache, nginx), im Code Ihrer Anwendung oder bei Ihrem CDN. Das Werkzeug liefert die Zeilen für Apache mit mod_headers und für nginx gleich mit.

Warum funktioniert meine Seite nach dem Einschalten nicht mehr?

Die Richtlinie blockiert eine Quelle, die Ihre Seite braucht, etwa ein externes Skript oder Inline-Styles. Die Entwicklerkonsole des Browsers nennt die blockierte Adresse. Testen Sie deshalb zuerst mit Report-Only.

Brauche ich default-src?

Ja, als Rückfall für alle Ressourcentypen ohne eigene Direktive. Ohne default-src sind nicht genannte Typen unbeschränkt.

Was ist eine Nonce in der CSP?

Ein Zufallswert, den der Server bei jeder Antwort neu erzeugt. Er steht in der CSP als 'nonce-…' und als Attribut nonce="…" an jedem erlaubten script-Element. Ein Angreifer kennt den Wert nicht und kann ihn nicht vorhersagen.

Wie teste ich eine Content Security Policy?

Setzen Sie die Richtlinie zuerst als Content-Security-Policy-Report-Only und rufen Sie alle wichtigen Seiten auf. Die Entwicklerkonsole des Browsers zeigt jede Ressource, die blockiert würde. Passen Sie die Direktiven an, bis keine berechtigten Meldungen mehr erscheinen.

Was bedeutet 'unsafe-eval' in der CSP?

Es erlaubt Skripten, Text als Code auszuführen, etwa mit eval() oder new Function(). Das öffnet Angriffswege und sollte nur gesetzt werden, wenn eine Bibliothek es zwingend braucht.

Weitere Werkzeuge

Das könnte auch helfen

Alle 358 Werkzeuge