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.
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.
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.
# /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;
} # 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;
} 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. 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
<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> 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 |
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.
# 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 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.
Wie steht Ihre Domain bei Clear-Site-Data?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.