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.

Netlify · Schritt für Schritt

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.

1 Schritt 1 von 3

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 Node.js
// 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 Redirect + Header
# 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"'
Set-Cookie als Fallback

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.

2 Schritt 2 von 3

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 Deno
// 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" };
Wenn Ihr Logout-Prozess eine Datenbank-Session invalidieren muss, verwenden Sie eine regulaere Netlify Function mit Datenbankzugriff. Edge Functions haben keinen Zugriff auf Node.js-Module wie Datenbankclients.
3 Schritt 3 von 3

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.

Terminal Verifizieren
# 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.