In Deutschland setzt das TTDSG (Telekommunikation-Telemedien-Datenschutz-Gesetz) von 2021 die EU-ePrivacy-Richtlinie strenger um als in vielen anderen Mitgliedstaaten: Es verlangt eine ausdrückliche Einwilligung, bevor überhaupt ein nicht technisch notwendiges Cookie gesetzt wird — nicht erst vor der Datenverarbeitung, sondern schon vor dem Setzen selbst. Das ist der Grund, warum deutsche Websites oft besonders granulare Cookie-Banner mit einzeln abwählbaren Kategorien zeigen, statt eines simplen Akzeptieren/Ablehnen.
Das Secure-Attribut
Das Secure-Attribut weist den Browser an, das Cookie nur über eine verschlüsselte HTTPS-Verbindung zu senden. Ohne dieses Attribut kann das Cookie im Klartext über HTTP übertragen werden, was es in ungesicherten Netzwerken wie öffentlichem WLAN angreifbar macht.
Das HttpOnly-Attribut
Ein Cookie mit dem Attribut HttpOnly kann nicht aus JavaScript gelesen werden (document.cookie). Das ist die direkteste Verteidigung gegen Session-Diebstahl per XSS: Selbst wenn es einem Angreifer gelingt, ein Skript in die Seite einzuschleusen, bleibt ein so markiertes Session-Cookie unerreichbar.
Das SameSite-Attribut
Das SameSite-Attribut schränkt ein, ob ein Cookie bei Navigationen von anderen Seiten aus gesendet wird, und ist die wichtigste Verteidigung gegen CSRF-Angriffe. Strict blockiert das seitenübergreifende Senden vollständig, Lax — der Standardwert in allen modernen Browsern — erlaubt es etwa beim Folgen eines Links, und None hebt die Einschränkung auf, verlangt dafür aber zwingend auch Secure.
Wofür man das braucht
- Ein sicheres Session-Cookie für die eigene Webanwendung konfigurieren.
- Prüfen, welche Drittanbieter-Cookies eine Seite tatsächlich lädt, bevor man den nach TTDSG geforderten Consent-Banner formuliert.
- Diagnostizieren, warum ein Cookie in bestimmten Szenarien nicht gespeichert oder gesendet wird.
Das Partitioned-Attribut und die Zukunft ohne Drittanbieter-Cookies
Als Teil der CHIPS-Initiative (Cookies Having Independent Partitioned State) erlaubt das Attribut Partitioned einer in ein <iframe> eingebetteten Website, für jede übergeordnete Website eine eigene Cookie-Version zu haben, statt eines einzigen, von allen gemeinsam genutzten Cookies. Das ist ein Kompromiss zwischen dem vollständigen Blockieren von Drittanbieter-Cookies — was legitime Einbettungen wie Zahlungs- oder Chat-Widgets bricht — und dem alten Modell, in dem ein einziges Werbe-Cookie einen Nutzer über das gesamte Web hinweg verfolgen konnte.