Zum Hauptinhalt springen
Bethemesh

CSP-Generator

Stelle eine Content Security Policy aus Vorlagen (strikt, Analytics, großzügig) zusammen, passe jede Direktive an, aktiviere Report-Only oder upgrade-insecure-requests und kopiere den HTTP-Header oder das Meta-Tag – mit Warnungen zu unsafe-inline, unsafe-eval und Wildcards.

  • Zwischenablage

Dieses Widget einbetten

Passe die Darstellung an, prüfe die Vorschau und kopiere anschließend den Code.

Vorschau

Art des Einbettungscodes

Zu kopierender Code

Responsive und automatisch von Bethemesh in der Größe angepasst.

Voreinstellung

Erzeugt einen Überwachungs-Header, der keine Ressourcen blockiert.

Direktiven

Quellen durch Leerzeichen oder Kommas trennen.

HTTP-Header

Meta-Tag

Rohe Richtlinie

War dieses Werkzeug hilfreich?

Wie funktioniert dieses Tool?

Der CSP-Generator hilft dir, den Header Content-Security-Policy zu schreiben, der dem Browser sagt, aus welchen Quellen deine Website Skripte, Styles, Bilder und Verbindungen laden darf. Er richtet sich an Entwickler, Frontend-Teams und Admins, die die Folgen einer XSS-Lücke begrenzen wollen, ohne die Direktiven-Syntax auswendig zu kennen.

Eine CSP (W3C Content Security Policy Level 3) ist eine Liste von Direktiven, getrennt durch Semikolons, jeweils gefolgt von ihren Quellen: `default-src 'self'; script-src 'self' https://www.googletagmanager.com; object-src 'none'; base-uri 'self'`. Schlüsselwörter wie `'self'`, `'none'` oder `'unsafe-inline'` stehen in einfachen Anführungszeichen, Hosts und Schemata (`https:`, `data:`) nicht. Fetch-Direktiven (script-src, img-src, connect-src …) fallen auf default-src zurück, wenn sie fehlen – base-uri, form-action und frame-ancestors dagegen nicht. Deshalb weist das Tool auf ihr Fehlen hin.

Das Tool setzt deine Eingaben zusammen, entfernt Duplikate und leere Felder und erzeugt drei Ausgaben: die reine Richtlinie, den Header `Content-Security-Policy` (bzw. `Content-Security-Policy-Report-Only` im Überwachungsmodus) und ein `<meta http-equiv>`-Tag. Anschließend prüft es die Richtlinie und warnt, wenn default-src, object-src oder base-uri fehlen oder wenn `'unsafe-inline'`, `'unsafe-eval'` oder die Wildcard `*` den Schutz schwächen. Die wertlose Direktive upgrade-insecure-requests lässt den Browser per HTTP verlinkte Ressourcen über HTTPS laden.

So verwenden Sie dieses Tool

  1. Vorlage wählen

    Wähle Strikt, Mit Analytics, Großzügig oder Benutzerdefiniert und aktiviere bei Bedarf Report-Only, um einen nicht blockierenden Überwachungs-Header zu erhalten.

  2. Direktiven anpassen

    Fülle default-src, script-src, style-src, img-src, connect-src, frame-ancestors und die übrigen Felder aus, trenne Quellen mit Leerzeichen oder Kommas und aktiviere bei Bedarf upgrade-insecure-requests.

  3. Erzeugen und kopieren

    Klicke auf „Erzeugen“, lies die Warnungen und kopiere oder exportiere HTTP-Header, Meta-Tag oder reine Richtlinie.

Anwendungsfälle

Erste CSP für eine Unternehmensseite

Starte mit der strikten Vorlage, trage nur deine CDNs und deine API in script-src und connect-src ein und rolle sie zuerst als Report-Only aus, um zu sehen, was blockiert würde.

Google Tag Manager und Analytics erlauben

Die Analytics-Vorlage ergänzt googletagmanager.com und google-analytics.com in den passenden Direktiven – ergänze sie um die Tags, die du wirklich lädst.

Befund aus einem Sicherheitsscan beheben

Ein Scanner meldet „Content-Security-Policy fehlt“ oder „unsafe-inline erlaubt“: Baue die Richtlinie neu und prüfe, dass keine Warnung übrig bleibt, bevor sie wieder live geht.

Beispiele

Minimale CSP-Richtlinie

Eingabe

Direktiven: default-src = 'self'; object-src = 'none'; base-uri = 'self'; Report-Only-Modus: aus

Ergebnis

HTTP-Header: Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self' – Warnungen: keine

Tipps und bewährte Vorgehensweisen

  • Teste die Richtlinie immer erst als Report-Only auf allen Seiten (Formulare, Checkout, Admin-Bereich), bevor du sie scharf schaltest: Verstöße erscheinen in der Browser-Konsole.
  • Das Meta-Tag ignoriert frame-ancestors, report-uri und sandbox und kann nicht im Report-Only-Modus arbeiten: Nutze dafür den HTTP-Header.
  • Schreib `self` nie ohne Anführungszeichen: Sonst liest der Browser es als Hostnamen und die Quelle passt auf nichts.

Quellen und Referenzen

Häufig gestellte Fragen

Verhindert eine CSP XSS-Angriffe?

Sie behebt die Lücke nicht, schränkt aber stark ein, was ein eingeschleustes Skript tun kann, indem sie Inline-Skripte und nicht freigegebene Domains blockiert. Mit 'unsafe-inline' in script-src geht der Großteil dieses Schutzes verloren. OWASP beschreibt sie als Defense in Depth zusätzlich zu korrektem Output-Encoding.

HTTP-Header oder Meta-Tag?

Der HTTP-Header ist die bessere Wahl: Er greift ab dem ersten Byte und unterstützt alle Direktiven. Das Meta-Tag hilft bei statischem Hosting ohne Zugriff auf Header, ignoriert aber frame-ancestors, report-uri und sandbox und schützt nur Inhalte, die danach kommen.

Wie erlaube ich ein Inline-Skript ohne unsafe-inline?

Ergänze script-src um eine Nonce (`'nonce-Zufallswert'`, bei jeder Antwort neu erzeugt und im nonce-Attribut des Tags wiederholt) oder um den Hash des Skripts (`'sha256-…'`, Base64 des SHA-256 seines exakten Inhalts). Du kannst diese Werte direkt ins Feld script-src eintragen; den Hash berechnest du mit einem SRI- oder Hash-Generator.

Umfasst 'self' auch Subdomains?

Nein. 'self' passt nur auf denselben Origin: gleiches Schema, gleicher Host, gleicher Port. Für cdn.example.com oder alle Subdomains musst du `https://cdn.example.com` oder `https://*.example.com` ausdrücklich eintragen.

Wie funktioniert der Report-Only-Modus?

Der Header Content-Security-Policy-Report-Only wertet dieselbe Richtlinie aus, blockiert aber nichts: Der Browser meldet Verstöße nur in der Konsole und – wenn du eine report-to- oder report-uri-Direktive ergänzt – an deinen Sammel-Endpunkt. So kannst du die Richtlinie feinjustieren, bevor du auf den blockierenden Header umstellst.

Ersetzt frame-ancestors X-Frame-Options?

Ja, frame-ancestors ist der moderne Nachfolger von X-Frame-Options und hat in unterstützenden Browsern Vorrang: `frame-ancestors 'none'` entspricht DENY. Viele Sites behalten beide für ältere Clients. Es funktioniert nur im HTTP-Header, nicht im Meta-Tag.

Verwandte Werkzeuge

Werkzeuge, die diesem ähnlich sind oder es ergänzen.

Ähnliche Werkzeuge

Erzeuge HSTS, nosniff, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP und X-Frame-Options für Nginx oder Apache.

Sicherheit & DatenschutzDieses Werkzeug verwenden

Erzeuge das SRI-integrity-Attribut eines Skripts oder Stylesheets aus eingefügtem Inhalt, einer Datei oder einer CDN-URL.

Sicherheit & DatenschutzDieses Werkzeug verwenden

HTTP-Header analysieren und wichtige Sicherheits- und Cache-Informationen erkennen.

Sicherheit & DatenschutzDieses Werkzeug verwenden