Reporting API für Netlify konfigurieren
Schritt-für-Schritt-Anleitung: CSP-Violations und andere Security-Violations auf Netlify per Reporting API dauerhaft erfassen und auswerten.
Reporting API auf Netlify
Die Reporting API ermöglicht es, CSP-Violations, Deprecation-Warnungen und andere Browser-Fehler an einen Server-Endpoint zu senden. So erkennen Sie Sicherheitsprobleme in Produktion, bevor Nutzer betroffen sind. Reporting ist mit 4 von 166 Punkten ein Faktor im Wolf-Agents Web Security Check.
Auf Netlify setzen Sie den Reporting-Endpoints Header per netlify.toml, _headers oder Edge Functions. Der Reporting-Endpoint muss ein separater Service sein (z.B. eine Netlify Function, ein externer Dienst wie Sentry oder report-uri.com), der die Reports entgegennimmt und speichert.
Die netlify.toml eignet sich für statische Endpoints. Wenn Sie dynamische CSP mit Nonces per Edge Function verwenden, sollten Sie Reporting-Endpoints in derselben Edge Function setzen, um die Konfiguration konsistent zu halten.
Reporting-Endpoints per netlify.toml oder _headers
Definieren Sie den Reporting-Endpoint und verknüpfen Sie ihn mit Ihrer CSP über die report-to Direktive. Sie können mehrere Endpoints definieren — z.B. einen für CSP-Reports und einen Default-Endpoint für andere Report-Typen.
# netlify.toml — Reporting-Endpoints
[[headers]]
for = "/*"
[headers.values]
Reporting-Endpoints = "csp-endpoint=\"https://reporting.ihre-domain.de/csp\", default=\"https://reporting.ihre-domain.de/default\""
Content-Security-Policy = "default-src 'self'; report-to csp-endpoint" # _headers — Reporting-Endpoints
/*
Reporting-Endpoints: csp-endpoint="https://reporting.ihre-domain.de/csp", default="https://reporting.ihre-domain.de/default"
Content-Security-Policy: default-src 'self'; report-to csp-endpoint report-uri ist veraltet. Verwenden Sie report-to mit dem Reporting-Endpoints Header. Für maximale Kompatibilität setzen Sie beide Direktiven parallel in der CSP.
Edge Function für dynamisches Reporting
Wenn Sie CSP per Edge Function setzen (z.B. mit dynamischen Nonces), fügen Sie die report-to Direktive und den Reporting-Endpoints Header in derselben Edge Function hinzu. So bleiben CSP und Reporting immer konsistent.
// netlify/edge-functions/reporting.ts
import type { Context } from "https://edge.netlify.com";
export default async (request: Request, context: Context) => {
const response = await context.next();
// Reporting-Endpoints für alle Responses setzen
response.headers.set(
"Reporting-Endpoints",
'csp-endpoint="https://reporting.ihre-domain.de/csp"'
);
// report-to Direktive an bestehende CSP anhängen
const csp = response.headers.get("Content-Security-Policy") || "";
if (csp && !csp.includes("report-to")) {
response.headers.set(
"Content-Security-Policy",
csp + "; report-to csp-endpoint"
);
}
return response;
};
export const config = { path: "/*" }; application/reports+json entgegennimmt. Alternativ eignen sich externe Services wie Sentry, report-uri.com oder ein eigener Logging-Endpoint. Reporting-Header verifizieren
Prüfen Sie, ob der Reporting-Endpoints Header gesetzt ist und die CSP die report-to Direktive enthält. Browser senden Reports asynchron — Sie sehen sie erst im Reporting-Endpoint, nicht in der Konsole.
# Reporting-Endpoints Header prüfen
curl -sI https://ihre-domain.de | grep -i reporting-endpoints
# Erwartete Ausgabe:
# Reporting-Endpoints: csp-endpoint="https://reporting.ihre-domain.de/csp"
# CSP report-to Direktive prüfen
curl -sI https://ihre-domain.de | grep -i content-security-policy
# Erwartete Ausgabe (Auszug):
# ... report-to csp-endpoint
# Deploy Preview ebenfalls prüfen
curl -sI https://deploy-preview-42--ihre-site.netlify.app | grep -i reporting
# Wolf-Agents Web Security Check nutzen:
# https://wolf-agents.com/tools/web-security-check Häufige Fehler bei Reporting auf Netlify
Endpoint nicht erreichbar
Der Reporting-Endpoint muss oeffentlich erreichbar sein und CORS für den Browser erlauben. Testen Sie den Endpoint separat mit curl -X POST und prüfen Sie die Serverantwort.
Doppelte Report-Header
Wenn netlify.toml und eine Edge Function beide Reporting-Endpoints setzen, überschreibt die Edge Function den statischen Header. Setzen Sie den Header nur an einer Stelle.
Zu viele Reports
Browser senden bei jeder CSP-Violation einen Report. Implementieren Sie Rate-Limiting und Deduplizierung auf dem Reporting-Endpoint, um Log-Fluten zu vermeiden.
Deploy Preview mit falschem Endpoint
Deploy Previews senden Reports an denselben Endpoint wie Produktion. Filtern Sie Reports nach der document-uri, um Preview-Reports von Produktionsdaten zu trennen.
Compliance-Relevanz
Reporting ist ein wesentlicher Bestandteil der Sicherheitsüberwachung und wird von mehreren Standards gefordert.
NIS2
Fordert die Erkennung und Meldung von Sicherheitsvorfällen. Die Reporting API erfasst CSP-Violations automatisch und liefert Daten für die Vorfallsbewertung.
PCI DSS 4.0
Verlangt die Überwachung von Script-Verletzungen auf Zahlungsseiten (Anforderung 6.4.3). CSP-Reporting dokumentiert jeden Verstoß nachvollziehbar.
OWASP
Empfiehlt Reporting als Best Practice für Security-Header-Monitoring. Ohne Reporting bleiben CSP-Verstoße unentdeckt.
Wolf-Agents Check
Bewertet die Reporting API mit bis zu 4 Punkten. Geprüft werden das Vorhandensein von Reporting-Endpoints und die report-to Direktive in der CSP.
Wie steht Ihre Domain bei Reporting API?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.