Cross-Origin Headers für Bunny CDN konfigurieren
COOP, COEP und CORP per Edge Rules setzen — Cross-Origin-Isolation für Spectre-Schutz und SharedArrayBuffer auf CDN-Ebene.
Cross-Origin Headers auf Bunny CDN
Die Cross-Origin Headers (COOP, COEP, CORP) schützen vor Spectre-Angriffen und ermöglichen Cross-Origin-Isolation im Browser. Mit 30 von 166 Punkten sind sie einer der gewichtigsten Bereiche im Wolf-Agents Web Security Check. Auf Bunny CDN konfigurieren Sie alle drei Header per Edge Rules — jeweils eine Regel pro Header.
Die Herausforderung auf CDN-Ebene: COEP: require-corp verlangt, dass alle eingebundenen Ressourcen entweder same-origin sind oder einen Cross-Origin-Resource-Policy Header tragen. Wenn Sie Drittanbieter-Ressourcen (Google Fonts, Analytics, Ads) einbinden, kann require-corp diese blockieren. Wolf-Agents empfiehlt den schrittweisen Ansatz: zuerst COOP und CORP, dann COEP nach gründlichem Testen.
COOP, COEP und CORP per Edge Rules
Legen Sie drei separate Edge Rules für die Cross-Origin Headers an. COOP und COEP sollten nur für HTML-Seiten gesetzt werden (URL-Pattern *.html oder Match All). CORP gilt idealerweise für alle Ressourcen und kontrolliert, wer sie einbinden darf.
# Bunny Dashboard → Pull Zone → Edge Rules
# 3 separate Edge Rules für Cross-Origin-Isolation
# --- Edge Rule 1: COOP ---
Condition: Match All (oder URL Pattern: *.html)
Action: Set Response Header
Header Name: Cross-Origin-Opener-Policy
Header Value: same-origin
# --- Edge Rule 2: COEP ---
Header Name: Cross-Origin-Embedder-Policy
Header Value: require-corp
# --- Edge Rule 3: CORP ---
Header Name: Cross-Origin-Resource-Policy
Header Value: same-origin Cross-Origin-Isolation benötigt 3 separate Edge Rules. Bei einer Pull Zone mit maximal 50 Edge Rules ist das vertretbar. Planen Sie die Slots: Security Headers benötigen insgesamt etwa 15 Regeln, lassen 35 für andere Zwecke.
Cross-Origin Headers per Bunny API
Für Infrastructure-as-Code erstellen Sie alle drei Edge Rules per API. Beachten Sie die unterschiedlichen URL-Patterns: COOP und COEP nur für HTML, CORP für alle Ressourcen. Bei Drittanbieter-Einbindungen verwenden Sie credentialless statt require-corp für COEP.
# Bunny API — COOP 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": "Cross-Origin-Opener-Policy",
"ActionParameter2": "same-origin",
"Triggers": [{"Type": 0, "PatternMatchingType": 0, "PatternMatches": ["*.html"]}],
"TriggerMatchingType": 0,
"Description": "COOP Header for HTML",
"Enabled": true
}'
# COEP Edge Rule
curl -X POST https://api.bunny.net/pullzone/{pullZoneId}/edgerules \
-H "AccessKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ActionType": 15,
"ActionParameter1": "Cross-Origin-Embedder-Policy",
"ActionParameter2": "require-corp",
"Triggers": [{"Type": 0, "PatternMatchingType": 0, "PatternMatches": ["*.html"]}],
"TriggerMatchingType": 0,
"Description": "COEP Header for HTML",
"Enabled": true
}'
# CORP Edge Rule (für alle Ressourcen)
curl -X POST https://api.bunny.net/pullzone/{pullZoneId}/edgerules \
-H "AccessKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ActionType": 15,
"ActionParameter1": "Cross-Origin-Resource-Policy",
"ActionParameter2": "same-origin",
"Triggers": [{"Type": 0, "PatternMatchingType": 0, "PatternMatches": ["*"]}],
"TriggerMatchingType": 0,
"Description": "CORP Header for all resources",
"Enabled": true
}' COEP: require-corp blockiert alle Cross-Origin-Ressourcen ohne CORP-Header. Google Fonts, Analytics-Scripts und Ads funktionieren nicht mehr. Testen Sie gründlich oder verwenden Sie credentialless als Alternative. Cross-Origin-Isolation verifizieren
Prüfen Sie alle drei Header per curl. Testen Sie zusätzlich im Browser, ob self.crossOriginIsolated den Wert true zurückgibt. Erst dann ist die Cross-Origin-Isolation aktiv und SharedArrayBuffer verfügbar.
# Alle Cross-Origin Headers prüfen
curl -sI https://ihre-domain.b-cdn.net | grep -i cross-origin
# Erwartete Ausgabe:
cross-origin-opener-policy: same-origin
cross-origin-embedder-policy: require-corp
cross-origin-resource-policy: same-origin
# Cross-Origin-Isolation im Browser prüfen:
# DevTools → Console:
# self.crossOriginIsolated → true Häufige Fehler
COEP blockiert Drittanbieter-Ressourcen
require-corp blockiert alle Cross-Origin-Ressourcen, die keinen CORP-Header setzen. Google Fonts, YouTube-Embeds und Analytics-Scripts haben oft keinen CORP-Header. Verwenden Sie credentialless oder setzen Sie crossorigin="anonymous" auf betroffene Tags.
CORP: cross-origin auf CDN-Assets
Wenn andere Domains Ihre CDN-Assets einbinden, brauchen diese Cross-Origin-Resource-Policy: cross-origin statt same-origin. Nutzen Sie einen URL-Pattern-Trigger, um CORP nur für HTML auf same-origin und für Assets auf cross-origin zu setzen.
COOP bricht Popup-Workflows
COOP: same-origin unterbricht window.opener-Kommunikation. OAuth-Popups und Payment-Fenster, die auf window.opener.postMessage() angewiesen sind, funktionieren nicht mehr. Verwenden Sie same-origin-allow-popups als Kompromiss.
Nur COOP ohne COEP gesetzt
Cross-Origin-Isolation erfordert sowohl COOP als auch COEP. COOP allein schützt vor Fenster-basiertem Zugriff, aktiviert aber nicht crossOriginIsolated. Ohne COEP bleiben Spectre-Seitenkanalangriffe auf Ressourcen möglich.
Compliance-Relevanz
Cross-Origin Headers schützen vor Spectre-Seitenkanalangriffen — einer Hardware-Schwachstelle, die durch Software-Maßnahmen mitigiert werden muss. NIS2 fordert technische Maßnahmen auf dem Stand der Technik — Cross-Origin-Isolation gehört dazu. BSI IT-Grundschutz empfiehlt die Härtung von Web-Anwendungen gegen bekannte Angriffsklassen. PCI DSS 4.0 verlangt Schutz vor clientseitigem Datenabgriff. Bunny CDN mit EU-only Storage Zones ermöglicht die DSGVO-konforme Umsetzung. Der Wolf-Agents Web Security Check bewertet Cross-Origin Headers mit bis zu 30 Punkten und prüft COOP, COEP und CORP separat.
Wie steht Ihre Domain bei Cross-Origin Headers?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.