CSP für Bunny CDN konfigurieren
Content Security Policy per Edge Rule setzen — von Report-Only über hash-basierte Policies bis Enforcement mit Monitoring.
Content Security Policy auf Bunny CDN
Content Security Policy (CSP) ist mit 35 von 166 Punkten der einflussreichste Security Header im Wolf-Agents Web Security Check. Auf Bunny CDN setzen Sie CSP per Edge Rule. Die Herausforderung: Ein CDN kann keine dynamischen Nonces pro Request generieren, da gecachte Responses identisch an alle Nutzer ausgeliefert werden.
Stattdessen nutzen Sie hash-basierte CSP für bekannte Inline-Scripts oder strict-dynamic in Kombination mit einem SSR-Origin, der Nonces generiert. Wolf-Agents setzt Bunny CDN selbst ein und empfiehlt den hash-basierten Ansatz für statische Sites und strict-dynamic für SSR-Anwendungen.
CSP im Report-Only-Modus per Edge Rule
Beginnen Sie immer im Report-Only-Modus. So meldet der Browser CSP-Verstöße in der Konsole, ohne Ressourcen zu blockieren. Legen Sie im Bunny Dashboard eine Edge Rule mit dem Header Content-Security-Policy-Report-Only an.
# Bunny Dashboard → Pull Zone → Edge Rules → Add Edge Rule
Condition: Match All
Action: Set Response Header
Header Name: Content-Security-Policy-Report-Only
Header Value: default-src 'self'; script-src 'self' 'sha256-{HASH}'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://cdn.bunny.net; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none' Bunny CDN liefert gecachte Responses aus. Ein Nonce muss pro Request einzigartig sein — das ist mit CDN-Cache inkompatibel. Verwenden Sie stattdessen 'sha256-{HASH}' für bekannte Inline-Scripts oder 'strict-dynamic' wenn Ihr Origin Nonces generiert.
CSP per Bunny API automatisieren
Für reproduzierbare Deployments erstellen Sie die CSP Edge Rule per API. Nutzen Sie einen URL-Pattern-Trigger, um CSP nur für HTML-Seiten zu setzen — statische Assets wie Bilder und Fonts benötigen keine CSP. Das spart Edge-Rule-Auswertungen und reduziert die Header-Größe bei Asset-Requests.
# Bunny API — CSP Edge Rule erstellen
curl -X POST https://api.bunny.net/pullzone/{pullZoneId}/edgerules \
-H "AccessKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ActionType": 15,
"ActionParameter1": "Content-Security-Policy",
"ActionParameter2": "default-src '"'"'self'"'"'; script-src '"'"'self'"'"' '"'"'strict-dynamic'"'"' '"'"'sha256-{HASH}'"'"'; style-src '"'"'self'"'"' '"'"'unsafe-inline'"'"'; img-src '"'"'self'"'"' data:; font-src '"'"'self'"'"'; connect-src '"'"'self'"'"'; frame-ancestors '"'"'none'"'"'; base-uri '"'"'self'"'"'; form-action '"'"'self'"'"'; object-src '"'"'none'"'"'",
"Triggers": [{
"Type": 0,
"PatternMatchingType": 0,
"PatternMatches": ["*.html"]
}],
"TriggerMatchingType": 0,
"Description": "CSP Header for HTML pages",
"Enabled": true
}' echo -n 'SCRIPT_CONTENT' | openssl dgst -sha256 -binary | openssl base64 -A. Der Hash muss den exakten Inhalt des Script-Tags abbilden — jedes Leerzeichen zählt. Verifizieren und Enforcement aktivieren
Prüfen Sie den CSP-Header per curl und analysieren Sie Violations in den Browser DevTools. Wenn keine unerwarteten Violations auftreten, ändern Sie den Header-Namen von Content-Security-Policy-Report-Only zu Content-Security-Policy in der Edge Rule.
# CSP-Header prüfen
curl -sI https://ihre-domain.b-cdn.net | grep -i content-security-policy
# Erwartete Ausgabe:
content-security-policy: default-src 'self'; script-src 'self' 'sha256-...';
# Hash eines Scripts berechnen
echo -n 'console.log("hello")' | openssl dgst -sha256 -binary | openssl base64 -A
# Browser DevTools → Console prüfen auf Violations
# Refused to execute inline script... Häufige Fehler
Nonces mit CDN-Cache inkompatibel
Ein Nonce muss pro Request einzigartig sein. Bunny CDN cached Responses und liefert denselben Content an alle Nutzer. Nonces funktionieren nur, wenn der Origin sie generiert und Bunny die Seite nicht cached (Cache-Control: no-store).
CSP auf alle Requests statt nur HTML
CSP ist nur für HTML-Dokumente relevant. Setzen Sie einen URL-Pattern-Trigger in der Edge Rule, um CSP nur für *.html oder Pfade ohne Dateiendung zu setzen. Das spart unnötige Header bei Asset-Requests.
Perma-Cache liefert veraltete CSP
Edge Rules werden bei jedem Request ausgeführt, unabhängig vom Cache-Status. Wenn Sie die CSP in der Edge Rule ändern, wird die neue Policy sofort aktiv — auch für Perma-Cache-Treffer. Kein Purge nötig.
Hash-Mismatch nach Build
Wenn sich Inline-Scripts nach einem Build ändern, müssen die Hashes in der CSP aktualisiert werden. Integrieren Sie die Hash-Berechnung in Ihre Build-Pipeline und aktualisieren Sie die Edge Rule per API.
Compliance-Relevanz
CSP ist zentral für PCI DSS 4.0 (Requirement 6.4.3 — Inventar autorisierter Scripts). Eine strikte CSP verhindert, dass injizierte Skripte Kreditkartendaten abgreifen. BSI IT-Grundschutz empfiehlt CSP zur XSS-Prävention. NIS2 fordert technische Maßnahmen zur Angriffsprävention — CSP ist die effektivste clientseitige Maßnahme. Der Wolf-Agents Web Security Check bewertet CSP mit bis zu 35 Punkten und prüft Nonce/Hash-Nutzung, unsafe-inline und Reporting-Konfiguration.
Wie steht Ihre Domain bei CSP?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.