Alle Artikel

Cookies: wie ein kleines Stück Text den Sitzungsstatus speichert

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.

Tool ausprobieren