Reporting API für Bunny CDN konfigurieren

Reporting-Endpoints per Edge Rule setzen — CSP-Violations, Cross-Origin-Fehler und Browser-Deprecations an eigenen Endpoint weiterleiten.

Bunny CDN · Schritt für Schritt

Reporting API auf Bunny CDN

Die Reporting API ermöglicht es, Security-Policy-Violations, Deprecations und Netzwerkfehler automatisch an einen Endpoint zu senden. Mit 4 von 166 Punkten ist sie ein Faktor im Wolf-Agents Web Security Check. Auf Bunny CDN setzen Sie die Reporting-Header per Edge Rule — der Report-Empfang erfolgt auf Ihrem Origin-Server.

Zwei Header sind relevant: Reporting-Endpoints (neuer Standard, Chromium-basierte Browser) und Report-To (älterer Standard, breitere Kompatibilität). Wolf-Agents empfiehlt, beide Header parallel zu setzen. Die Reporting API ist besonders wertvoll in Kombination mit CSP im Report-Only-Modus — so erkennen Sie Violations, bevor sie Nutzer beeinträchtigen.

1 Schritt 1 von 3

Reporting-Endpoints per Edge Rule

Legen Sie zwei Edge Rules an: Eine für den neuen Reporting-Endpoints Header und eine für den Legacy-Report-To Header. Setzen Sie die Header nur für HTML-Seiten — Assets lösen keine Violations aus. Der Report-Endpoint muss auf Ihrem Origin-Server laufen, nicht auf dem CDN.

Bunny Dashboard → Edge Rules Dashboard
# Bunny Dashboard → Pull Zone → Edge Rules

# --- Edge Rule 1: Reporting-Endpoints Header ---
Condition:    Match All (oder URL Pattern: *.html)
Action:       Set Response Header
Header Name:  Reporting-Endpoints
Header Value: default="https://ihre-domain.de/api/reports", csp="https://ihre-domain.de/api/csp-reports"

# --- Edge Rule 2: Report-To Header (Legacy) ---
Header Name:  Report-To
Header Value: {"group":"default","max_age":86400,"endpoints":[{"url":"https://ihre-domain.de/api/reports"}]}

# CSP mit report-to-Direktive (in separater CSP Edge Rule):
# ... report-to csp; report-uri https://ihre-domain.de/api/csp-reports
Report-Endpoint darf nicht auf dem CDN laufen

Der Endpoint, der Violations empfängt, muss POST-Requests verarbeiten. Bunny CDN ist ein statisches CDN und kann keine POST-Requests an die Storage Zone weiterleiten. Der Endpoint muss auf Ihrem Origin-Server oder einem dedizierten Reporting-Dienst laufen.

2 Schritt 2 von 3

Reporting per Bunny API automatisieren

Für automatisierte Deployments erstellen Sie beide Edge Rules per API. Beachten Sie das JSON-Escaping im Report-To Header — die Anführungszeichen müssen korrekt escaped werden. Verknüpfen Sie den Reporting-Endpoint mit Ihrer CSP per report-to-Direktive.

Bunny API (cURL) API
# Bunny API — Reporting-Endpoints 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": "Reporting-Endpoints",
  "ActionParameter2": "default="https://ihre-domain.de/api/reports", csp="https://ihre-domain.de/api/csp-reports"",
  "Triggers": [{"Type": 0, "PatternMatchingType": 0, "PatternMatches": ["*.html"]}],
  "TriggerMatchingType": 0,
  "Description": "Reporting-Endpoints Header",
  "Enabled": true
}'

# Report-To Header (Legacy-Kompatibilität)
curl -X POST https://api.bunny.net/pullzone/{pullZoneId}/edgerules \
  -H "AccessKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ActionType": 15,
  "ActionParameter1": "Report-To",
  "ActionParameter2": "{"group":"default","max_age":86400,"endpoints":[{"url":"https://ihre-domain.de/api/reports"}]}",
  "Triggers": [{"Type": 0, "PatternMatchingType": 0, "PatternMatches": ["*.html"]}],
  "TriggerMatchingType": 0,
  "Description": "Report-To Header (Legacy)",
  "Enabled": true
}'
Report-Endpoints können von Angreifern mit gefälschten Reports geflutet werden. Implementieren Sie Rate-Limiting auf Ihrem Endpoint und validieren Sie die Report-Struktur, bevor Sie Reports speichern.
3 Schritt 3 von 3

Report-Empfang verifizieren

Prüfen Sie die Reporting-Header per curl und senden Sie einen Test-Report an den Endpoint. Öffnen Sie eine Seite mit absichtlicher CSP-Violation im Browser und prüfen Sie, ob der Report am Endpoint ankommt.

Terminal Verifizieren
# Reporting-Endpoints Header prüfen
curl -sI https://ihre-domain.b-cdn.net | grep -i reporting-endpoints

# Erwartete Ausgabe:
reporting-endpoints: default="https://ihre-domain.de/api/reports", csp="..."

# Report-To Header prüfen
curl -sI https://ihre-domain.b-cdn.net | grep -i report-to

# Test-Report an Endpoint senden
curl -X POST https://ihre-domain.de/api/reports \
  -H "Content-Type: application/reports+json" \
  -d '[{"type":"test","age":0,"url":"https://test.example","body":{}}]'

Häufige Fehler

JSON-Escaping im Report-To Header

Der Report-To Header enthält JSON, das in einem HTTP-Header-Wert steht. Beim Setzen per Edge Rule oder API müssen die Anführungszeichen korrekt escaped werden. Testen Sie den Header per curl und validieren Sie das JSON.

CORS auf dem Report-Endpoint fehlt

Browser senden Reports per POST an den Endpoint. Wenn Ihre CDN-Domain und der Report-Endpoint auf verschiedenen Domains liegen, muss der Endpoint CORS-Header setzen. Alternativ verwenden Sie denselben Origin für beide.

report-to in CSP fehlt

Der Reporting-Endpoints Header allein löst keine CSP-Reports aus. Sie müssen in der CSP-Direktive report-to csp und report-uri angeben, damit der Browser Violations an den benannten Endpoint sendet.

Compliance-Relevanz

Die Reporting API ermöglicht kontinuierliches Monitoring von Security Policies. PCI DSS 4.0 (Requirement 6.4.3) fordert die Überwachung autorisierter Scripts — CSP-Violation-Reports erfüllen diese Anforderung. NIS2 verlangt Mechanismen zur Erkennung von Sicherheitsvorfällen. BSI IT-Grundschutz empfiehlt die Überwachung von Sicherheitsrichtlinien. Der Wolf-Agents Web Security Check prüft die Konfiguration von Reporting-Endpoints und vergibt bis zu 4 Punkte.

Wie steht Ihre Domain bei Reporting API?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.