Clear-Site-Data auf Hetzner konfigurieren

Cookies, Cache und Storage beim Logout vollständig löschen — mit dem Clear-Site-Data Header auf Ihrem Hetzner Cloud Server. Nur auf dem Logout-Endpoint, nie auf jeder Seite.

Hetzner · Schritt für Schritt

Clear-Site-Data auf Hetzner Cloud Servern

Clear-Site-Data ist ein HTTP-Header, der den Browser anweist, gespeicherte Daten zu löschen — Cookies, Cache, localStorage, sessionStorage und IndexedDB. Er wird ausschließlich auf dem Logout-Endpoint gesetzt, damit nach dem Abmelden keine sensiblen Daten im Browser zurückbleiben. Im Wolf-Agents Web Security Check fließt Clear-Site-Data mit 3 von 166 Punkten in die Bewertung ein.

Auf einem Hetzner Cloud Server konfigurieren Sie den Header direkt im Webserver. Der entscheidende Punkt: Clear-Site-Data darf nur auf dem Logout-Pfad gesetzt werden. Wird der Header auf jeder Seite gesendet, verliert der Nutzer bei jedem Seitenaufruf seinen gesamten lokalen Zustand — Session-Cookies, gespeicherte Präferenzen und gecachte Assets. Das macht die Anwendung unbenutzbar.

1 Schritt 1 von 3

Logout-Endpoint identifizieren und Nginx konfigurieren

Identifizieren Sie den Logout-Pfad Ihrer Anwendung. Typische Pfade sind /logout, /abmelden oder /session/destroy. In Nginx verwenden Sie location = für einen exakten Pfad-Match, um sicherzustellen, dass der Header nur auf diesem einen Endpoint gesetzt wird.

Nginx — Logout-Endpoint
/etc/nginx/conf.d/clear-site-data.conf Produktiv
# /etc/nginx/conf.d/clear-site-data.conf

# Clear-Site-Data NUR auf dem Logout-Endpoint
location = /logout {
    add_header Clear-Site-Data '"cache", "cookies", "storage"' always;

    # Proxy zum Backend (z.B. Node.js, PHP-FPM)
    proxy_pass http://127.0.0.1:3000;
}

# Alternative: Mehrere Logout-Pfade
location ~ ^/(logout|abmelden|session/destroy)$ {
    add_header Clear-Site-Data '"cache", "cookies", "storage"' always;
    proxy_pass http://127.0.0.1:3000;
}
Nginx — Selektives Löschen
/etc/nginx/conf.d/clear-site-data.conf Erweitert
# Selektives Löschen — nur Cookies und Cache, Storage behalten
location = /logout {
    add_header Clear-Site-Data '"cache", "cookies"' always;
    proxy_pass http://127.0.0.1:3000;
}

# Nur Cache löschen (z.B. nach Deployment)
location = /api/cache-bust {
    add_header Clear-Site-Data '"cache"' always;
    return 204;
}
Setzen Sie Clear-Site-Data niemals global in einem server-Block oder auf einem häufig aufgerufenen Pfad. Der Header löscht alle genannten Datentypen bei jedem Request, auf dem er gesetzt ist. Ein globaler Einsatz führt dazu, dass der Nutzer bei jedem Klick ausgeloggt wird und alle lokalen Daten verliert.
2 Schritt 2 von 3

Apache-Konfiguration und Browser-Kompatibilität

In Apache verwenden Sie die <Location>-Direktive, um den Header auf einen bestimmten Pfad zu beschränken. Beachten Sie die Browser-Unterstützung: Chrome, Edge und Opera unterstützen Clear-Site-Data vollständig. Firefox unterstützt es seit Version 94. Safari hat nur teilweise Unterstützung — dort funktioniert "cookies", aber "cache" und "storage" werden möglicherweise nicht vollständig bereinigt.

/etc/apache2/conf-available/clear-site-data.conf Produktiv
# /etc/apache2/conf-available/clear-site-data.conf
<IfModule mod_headers.c>
    # Logout-Endpoint: alle Browser-Daten löschen
    <Location /logout>
        Header always set Clear-Site-Data '"cache", "cookies", "storage"'
    </Location>

    # Alternative mit RegEx für mehrere Pfade
    <LocationMatch "^/(logout|abmelden)$">
        Header always set Clear-Site-Data '"cache", "cookies", "storage"'
    </LocationMatch>
</IfModule>
Safari-Kompatibilität

Da Safari Clear-Site-Data nicht vollständig unterstützt, sollten Sie den Logout-Prozess in Ihrer Anwendung zusätzlich absichern: Cookies explizit mit Set-Cookie: session=; Max-Age=0 löschen und localStorage per JavaScript bereinigen. Der Clear-Site-Data Header ist dann eine zusätzliche Sicherheitsebene, kein alleiniger Mechanismus.

Wert Löscht Einsatz
"cache" HTTP-Cache, Service Worker Caches Logout, Deployment-Cache-Bust
"cookies" Alle Cookies der Origin Logout (Session-Cookies)
"storage" localStorage, sessionStorage, IndexedDB Logout (gespeicherte Nutzerdaten)
"*" Alles (cache + cookies + storage) Kurzschreibweise für vollständiges Löschen
3 Schritt 3 von 3

Verifizierung

Prüfen Sie mit curl, dass der Header nur auf dem Logout-Endpoint gesetzt ist — und auf keiner anderen Seite. Ein Header auf der Startseite oder dem Dashboard wäre ein schwerwiegender Fehler.

Terminal Verifizierung
# Nginx-Konfiguration testen und laden
sudo nginx -t && sudo systemctl reload nginx

# Header auf dem Logout-Endpoint prüfen
curl -sI https://ihre-domain.de/logout | grep -i clear-site-data
# Erwartet: clear-site-data: "cache", "cookies", "storage"

# Sicherstellen, dass der Header auf anderen Seiten NICHT gesetzt ist
curl -sI https://ihre-domain.de/ | grep -i clear-site-data
# Erwartet: keine Ausgabe

curl -sI https://ihre-domain.de/dashboard | grep -i clear-site-data
# Erwartet: keine Ausgabe
Testen Sie den Logout-Flow manuell im Browser: Loggen Sie sich ein, öffnen Sie DevTools (Application > Storage), klicken Sie auf Logout und prüfen Sie, ob Cookies, localStorage und Cache gelöscht wurden.

Häufige Fehler bei Clear-Site-Data auf Hetzner

Header auf jeder Seite gesetzt = permanenter Datenverlust

Der häufigste und schwerwiegendste Fehler: Clear-Site-Data global im server-Block oder in einem allgemeinen location /-Block setzen. Der Nutzer verliert bei jedem Seitenaufruf seine Session, Cookies und lokalen Daten. Die Anwendung wird unbenutzbar, da der Login bei jedem Klick verloren geht. Setzen Sie den Header immer mit location = auf den exakten Logout-Pfad.

Funktioniert nur über HTTPS

Clear-Site-Data wird auf HTTP-Verbindungen von allen Browsern ignoriert. Stellen Sie sicher, dass Ihr Hetzner Server ein gültiges TLS-Zertifikat hat und der Logout-Endpoint über HTTPS erreichbar ist. Wenn Sie den Hetzner Load Balancer mit TLS-Terminierung nutzen, leitet er den Request als HTTP an das Backend weiter — der Header muss trotzdem auf dem Backend gesetzt werden, da er in der HTTPS-Response an den Browser gesendet wird.

Safari: Teilweise Unterstützung beachten

Safari unterstützt Clear-Site-Data nur eingeschränkt. "cookies" funktioniert zuverlässig, aber "cache" und "storage" werden nicht in allen Safari-Versionen vollständig bereinigt. Verlassen Sie sich nie allein auf diesen Header — implementieren Sie den Logout immer auch serverseitig (Session invalidieren) und clientseitig (Cookies manuell löschen, localStorage.clear()).

Compliance-Relevanz

Clear-Site-Data ist besonders relevant für Datenschutz und das Recht auf Datenlöschung. Der Header stellt sicher, dass nach dem Logout keine personenbezogenen Daten im Browser des Nutzers verbleiben.

DSGVO Artikel 17 (Recht auf Löschung) verlangt die Möglichkeit, personenbezogene Daten zu löschen. Clear-Site-Data ergänzt die serverseitige Löschung um die clientseitige Bereinigung — Cookies, gecachte Inhalte und gespeicherte Nutzerdaten werden beim Logout automatisch entfernt.
BSI Der BSI IT-Grundschutz empfiehlt die vollständige Session-Bereinigung beim Logout. Clear-Site-Data geht über die reine Cookie-Löschung hinaus und bereinigt auch Cache und lokale Speicher.

Wie steht Ihre Domain bei Clear-Site-Data?

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