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.
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.
Erzeugt einen Überwachungs-Header, der keine Ressourcen blockiert.
Quellen durch Leerzeichen oder Kommas trennen.
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.
Wähle Strikt, Mit Analytics, Großzügig oder Benutzerdefiniert und aktiviere bei Bedarf Report-Only, um einen nicht blockierenden Überwachungs-Header zu erhalten.
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.
Klicke auf „Erzeugen“, lies die Warnungen und kopiere oder exportiere HTTP-Header, Meta-Tag oder reine Richtlinie.
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.
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.
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.
Eingabe
Direktiven: default-src = 'self'; object-src = 'none'; base-uri = 'self'; Report-Only-Modus: ausErgebnis
HTTP-Header: Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self' – Warnungen: keineSie 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.
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.
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.
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.
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.
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.
Erzeuge HSTS, nosniff, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP und X-Frame-Options für Nginx oder Apache.
Erzeuge das SRI-integrity-Attribut eines Skripts oder Stylesheets aus eingefügtem Inhalt, einer Datei oder einer CDN-URL.
HTTP-Header analysieren und wichtige Sicherheits- und Cache-Informationen erkennen.
Lerne, eine CSP schrittweise einzuführen und Direktiven, Report-Only, Nonces sowie typische Fehler zu verstehen.
Verstehe die Schutzschichten einer Website: HTTPS, HTTP-Sicherheitsheader, CSP, SRI, Authentifizierung, Passwörter und Integrität.
Verstehe das Zusammenspiel von OAuth 2.0, PKCE, JWT, JWK und JWKS bei Autorisierung, Tokens, Schlüsseln und Verifizierung.
Verstehe, wann Verschlüsselung, Hashing, HMAC oder PBKDF2 für Vertraulichkeit, Integrität, Authentifizierung und Passwörter eingesetzt werden.