Clear-Site-Data für Netlify konfigurieren
Schritt-für-Schritt-Anleitung: Browser-Daten beim Logout per Netlify Functions oder Edge Functions zuverlässig löschen.
Clear-Site-Data auf Netlify
Der Clear-Site-Data Header weist den Browser an, gespeicherte Daten (Cache, Cookies, Storage) zu löschen. Ideal für Logout-Endpoints, um sicherzustellen, dass keine Session-Daten im Browser verbleiben. Clear-Site-Data ist mit 3 von 166 Punkten ein Faktor im Wolf-Agents Web Security Check.
Auf Netlify setzen Sie den Header über Netlify Functions (Node.js) oder Edge Functions (Deno). Statische Header per _headers oder netlify.toml eignen sich nur, wenn Sie den Header auf einen spezifischen Pfad wie /logout beschränken — nicht global, da Clear-Site-Data bei jedem Request alle Daten löschen würde.
Edge Functions bieten den Vorteil, dass sie am Edge laufen und keine Kaltstartzeit haben. Für Logout-Endpoints ohne Datenbankzugriff ist eine Edge Function daher die schnellere Wahl gegenüber einer regulaeren Netlify Function.
Logout per Netlify Function
Erstellen Sie eine Netlify Function als Logout-Endpoint. Die Function setzt den Clear-Site-Data Header, invalidiert den Session-Cookie und leitet zur Startseite weiter. Zusaetzlich können Sie in der netlify.toml einen Redirect von /logout zur Function einrichten.
// netlify/functions/logout.ts
import type { Handler } from "@netlify/functions";
export const handler: Handler = async () => {
return {
statusCode: 302,
headers: {
"Clear-Site-Data": '"cache", "cookies", "storage"',
"Location": "/",
"Set-Cookie": "session=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=Lax",
},
body: "",
};
}; # netlify.toml — Logout-Redirect zur Function
[[redirects]]
from = "/logout"
to = "/.netlify/functions/logout"
status = 200
force = true
# Alternativ: Statischer Clear-Site-Data Header
# (nur für spezifische Pfade verwenden!)
[[headers]]
for = "/logout"
[headers.values]
Clear-Site-Data = '"cache", "cookies", "storage"' Safari unterstützt Clear-Site-Data nur teilweise. Setzen Sie immer zusätzlich Set-Cookie mit abgelaufenem Datum als Fallback, damit Cookies auch in Safari zuverlässig gelöscht werden.
Alternative: Edge Function
Edge Functions (Deno) laufen am Edge und sind schneller als regulaere Netlify Functions. Für einfache Logout-Endpoints ohne Datenbankzugriff ist eine Edge Function die bessere Wahl. Die Edge Function wird per config.path auf den /logout-Pfad beschraenkt.
// netlify/edge-functions/logout.ts
import type { Context } from "https://edge.netlify.com";
export default async (request: Request, context: Context) => {
// Session-Cookie invalidieren und Browser-Daten löschen
return new Response(null, {
status: 302,
headers: {
"Clear-Site-Data": '"cache", "cookies", "storage"',
"Location": "/",
"Set-Cookie": "session=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=Lax",
},
});
};
export const config = { path: "/logout" }; Header verifizieren
Testen Sie den Logout-Endpoint und prüfen Sie, ob der Clear-Site-Data Header korrekt gesetzt wird. Verwenden Sie -sI für curl, um nur die Header zu sehen, und folgen Sie dem Redirect nicht.
# Netlify Function Logout prüfen
curl -sI https://ihre-domain.de/.netlify/functions/logout
# Erwartete Ausgabe:
# HTTP/2 302
# clear-site-data: "cache", "cookies", "storage"
# location: /
# Edge Function Logout prüfen
curl -sI https://ihre-domain.de/logout
# Erwartete Ausgabe:
# HTTP/2 302
# clear-site-data: "cache", "cookies", "storage"
# location: /
# Wolf-Agents Web Security Check nutzen:
# https://wolf-agents.com/tools/web-security-check Häufige Fehler bei Clear-Site-Data auf Netlify
Header global gesetzt
Clear-Site-Data loescht alle Daten bei jedem Request. Setzen Sie den Header nur für den Logout-Endpoint, niemals global per /* in der netlify.toml. Ein globaler Header würde bei jedem Seitenaufruf den gesamten Browser-Cache löschen.
Anfuehrungszeichen fehlen
Die Werte "cache", "cookies" und "storage" müssen in doppelten Anfuehrungszeichen stehen. Ohne Anfuehrungszeichen wird der Header vom Browser ignoriert. Achten Sie auf korrekte Escaping-Syntax in der netlify.toml.
Safari-Kompatibilität
Safari unterstützt Clear-Site-Data nur eingeschraenkt. Setzen Sie zusätzlich Set-Cookie mit abgelaufenem Datum als Fallback, um Cookies in allen Browsern zuverlässig zu löschen.
Redirect verschluckt den Header
Wenn Sie einen Redirect von /logout zu einer Netlify Function einrichten, wird der Header auf der Redirect-Response gesetzt, nicht auf der Zielseite. Der Browser verarbeitet den Header aber bereits auf dem Redirect korrekt.
Compliance-Relevanz
Clear-Site-Data unterstützt die saubere Session-Beendigung und erfüllt Anforderungen mehrerer Standards.
DSGVO
Fordert die Loeschung personenbezogener Daten auf Anfrage. Clear-Site-Data loescht Cache, Cookies und Storage im Browser — ein technischer Beitrag zur Datenschutz-Compliance.
NIS2
Verlangt Maßnahmen zur Verhinderung unbefugten Zugriffs. Saubere Session-Beendigung verhindert, dass nachfolgende Nutzer auf gemeinsam genutzten Geräten auf fremde Sitzungen zugreifen.
OWASP
Empfiehlt Clear-Site-Data als Teil der Session-Management-Best-Practices. Die OWASP Session Management Cheat Sheet nennt Clear-Site-Data als ergaenzende Massnahme zum Cookie-Löschen.
Wolf-Agents Check
Bewertet Clear-Site-Data mit bis zu 3 Punkten. Geprüft wird, ob der Header auf dem Logout-Pfad gesetzt ist und alle drei Direktiven ("cache", "cookies", "storage") enthält.
Wie steht Ihre Domain bei Clear-Site-Data?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.