Reporting API für Cloudflare konfigurieren
Report-To, NEL und Reporting-Endpoints auf Cloudflare einrichten — per Workers für Report-Endpoint und Transform Rules für Header-Konfiguration.
Reporting API auf Cloudflare
Cloudflare bietet zwei Wege, Reporting-Header zu setzen: Transform Rules für statische Header-Konfiguration über das Dashboard und Workers für dynamische Header und den Report-Endpoint. Workers sind die flexiblere Lösung — sie können sowohl die Header setzen als auch eingehende Reports empfangen und verarbeiten. Der Wolf-Agents Web Security Check prüft die Reporting API automatisch — als Teil der 166 Prüfpunkte.
Header per Worker setzen
Ein Cloudflare Worker kann Response-Header für jede Anfrage modifizieren. Der Worker fängt die Response vom Origin ab und fügt die Reporting-Header hinzu, bevor er sie an den Browser weitergibt.
// Cloudflare Worker — Reporting API Header
export default {
async fetch(request) {
const response = await fetch(request);
const newResponse = new Response(response.body, response);
// Report-To (beide Gruppen: nel + default)
const reportTo = [
{ group: 'nel', max_age: 31536000, endpoints: [{ url: 'https://reports.example.com/nel' }] },
{ group: 'default', max_age: 31536000, endpoints: [{ url: 'https://reports.example.com/default' }] }
];
newResponse.headers.set('Report-To', reportTo.map(g => JSON.stringify(g)).join(', '));
// NEL
newResponse.headers.set('NEL', JSON.stringify({
report_to: 'nel',
max_age: 31536000,
include_subdomains: true,
failure_fraction: 1.0
}));
// Reporting-Endpoints
newResponse.headers.set('Reporting-Endpoints',
'nel="https://reports.example.com/nel", default="https://reports.example.com/default"'
);
return newResponse;
}
}; Für statische Header ohne Worker: Cloudflare Dashboard > Rules > Transform Rules > Modify Response Header. Fügen Sie die drei Header (Report-To, NEL, Reporting-Endpoints) als statische Werte hinzu.
Worker als Report-Endpoint
Ein separater Worker kann als Report-Endpoint dienen. Er empfängt Browser-Reports als POST-Requests und kann sie in Cloudflare KV, D1 oder einem externen Service speichern.
// Cloudflare Worker — Report-Endpoint
export default {
async fetch(request) {
// CORS für Browser-Reports
if (request.method === 'OPTIONS') {
return new Response(null, {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST',
'Access-Control-Allow-Headers': 'Content-Type',
}
});
}
if (request.method === 'POST') {
const reports = await request.json();
console.log('Reports received:', JSON.stringify(reports));
// Optional: In KV oder D1 speichern
return new Response(null, { status: 204 });
}
return new Response('Method not allowed', { status: 405 });
}
}; Da Cloudflare als Reverse Proxy agiert, erkennt NEL Fehler zwischen Browser und Cloudflare-Edge — nicht zwischen Cloudflare und Ihrem Origin-Server. Für Origin-Monitoring nutzen Sie Cloudflare Health Checks.
Wie steht Ihre Domain bei Reporting API?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Kann ich Reporting-Header über Cloudflare Transform Rules setzen?
Ja. Transform Rules (Response Header Modification) können statische Header wie Report-To, NEL und Reporting-Endpoints hinzufügen. Für dynamische Werte oder den Report-Endpoint selbst benötigen Sie einen Worker.
Brauche ich einen Worker für den Report-Endpoint?
Ja, wenn Sie Reports auf Cloudflare empfangen möchten. Der Worker nimmt POST-Requests mit application/reports+json entgegen und kann Reports in KV, D1 oder einem externen Service speichern. Alternativ nutzen Sie einen externen Reporting-Service.
Funktioniert NEL hinter Cloudflare?
Ja, mit Einschränkungen. Da Cloudflare als Proxy agiert, erkennt NEL Fehler zwischen Browser und Cloudflare-Edge — nicht zwischen Cloudflare und Ihrem Origin-Server. Für Origin-Monitoring nutzen Sie Cloudflare Health Checks.
Welche Browser unterstützen Report-To und NEL?
Report-To, NEL und Reporting-Endpoints werden ausschließlich von Chromium-basierten Browsern unterstützt — Chrome 70+, Edge 79+ und Opera. Firefox und Safari implementieren keinen dieser Header.
Kann ich Report URI als externen Endpoint nutzen?
Ja. Cloudflare und Report URI arbeiten problemlos zusammen. Setzen Sie die Report URI URLs in Ihren Report-To und Reporting-Endpoints Headern ein. Report URI bietet ein kostenloses Kontingent für den Einstieg.