Zum Inhalt springen

SameSite Cookie

Zuletzt aktualisiert: 02.06.2025Autor: Redaktion DomainProvider.de · Lesezeit: 4 Min.

Das SameSite Cookie-Attribut ist eine Sicherheitseigenschaft von HTTP-Cookies, die steuert, ob ein Cookie bei webseitenübergreifenden Anfragen mitgesendet wird. Es wurde eingeführt, um Cross-Site-Request-Forgery-Angriffe (CSRF) zu erschweren und den unbeabsichtigten Abfluss von Nutzerdaten an Drittseiten zu verhindern. Seit Februar 2020 behandeln Chromium-basierte Browser Cookies ohne explizites SameSite-Attribut standardmäßig als „Lax".

Welche Werte kann das SameSite-Attribut haben?

Das SameSite-Attribut kennt drei mögliche Werte, die jeweils ein unterschiedliches Sicherheitsniveau bieten:

  • Strict: Das Cookie wird ausschließlich bei Anfragen gesendet, die von derselben Website ausgehen. Klickt ein Nutzer auf einen externen Link zu Ihrer Website, wird das Cookie beim ersten Seitenaufruf nicht mitgesendet. Dieser Wert bietet den stärksten Schutz gegen CSRF-Angriffe, kann aber die Benutzerfreundlichkeit einschränken, da Nutzer sich nach dem Klick auf einen externen Link erneut anmelden müssen.
  • Lax: Das Cookie wird bei Top-Level-Navigationen mit sicheren HTTP-Methoden (vor allem GET) mitgesendet, nicht jedoch bei eingebetteten Anfragen wie Bildern, iFrames oder POST-Formularen von Drittseiten. Lax ist der Standardwert in modernen Browsern und stellt einen Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit dar.
  • None: Das Cookie wird bei allen Anfragen mitgesendet, auch bei Cross-Site-Requests. Dieser Wert ist nur in Kombination mit dem Secure-Attribut erlaubt, das Cookie muss also über HTTPS übertragen werden. None wird benötigt, wenn ein Cookie bewusst webseitenübergreifend funktionieren soll, etwa für Single-Sign-On-Systeme oder eingebettete Inhalte.

Wie schützt SameSite vor CSRF-Angriffen?

Bei einem CSRF-Angriff bringt eine bösartige Website den Browser eines angemeldeten Nutzers dazu, eine Anfrage an eine andere Website zu senden – etwa ein Formular abzuschicken oder eine Aktion auszulösen. Ohne SameSite-Schutz würde der Browser dabei automatisch die Cookies der Zielwebsite mitsenden, sodass die Anfrage als authentifiziert gilt.

Das SameSite-Attribut verhindert dies, indem es festlegt, dass Cookies bei Cross-Site-Anfragen je nach eingestelltem Wert gar nicht oder nur eingeschränkt übertragen werden. Mit dem Wert „Strict" werden Cookies bei keiner Cross-Site-Anfrage mitgesendet, mit „Lax" nur bei sicheren Top-Level-Navigationen.

Seit wann ist Lax der Standard in Browsern?

Google Chrome hat mit Version 80 im Februar 2020 eine wesentliche Änderung eingeführt: Cookies ohne explizites SameSite-Attribut werden seitdem automatisch als „Lax" behandelt. Zuvor war das Standardverhalten „None", was bedeutete, dass Cookies uneingeschränkt an Drittseiten gesendet wurden.

Diese Änderung wurde schrittweise auch von anderen Browsern übernommen. Microsoft Edge, Opera und weitere Chromium-basierte Browser folgten zeitnah. Firefox und Safari haben eigene Mechanismen zum Schutz vor Cross-Site-Tracking implementiert, die in eine ähnliche Richtung wirken.

Für Webentwickler bedeutet diese Änderung, dass sie das SameSite-Attribut bewusst setzen sollten, statt sich auf das Standardverhalten zu verlassen. Insbesondere Cookies, die webseitenübergreifend funktionieren müssen, erfordern ein explizites SameSite=None; Secure.

Wie wird das SameSite-Attribut gesetzt?

Das Attribut wird beim Setzen eines Cookies im HTTP-Header angegeben. In PHP sieht das beispielsweise so aus:

Set-Cookie: session=abc123; SameSite=Lax; Secure; HttpOnly

In PHP ab Version 7.3 kann das Attribut direkt über die Funktion setcookie() mit dem Options-Array gesetzt werden. In älteren PHP-Versionen muss der Header manuell gesetzt werden. Wichtig ist, dass das SameSite-Attribut immer in Kombination mit weiteren Sicherheitsattributen wie Secure und HttpOnly verwendet wird, um einen umfassenden Schutz zu gewährleisten.

Das SameSite-Attribut ist Teil eines mehrstufigen Sicherheitskonzepts für Cookies:

  • Secure: Stellt sicher, dass das Cookie nur über HTTPS-Verbindungen übertragen wird. Voraussetzung für SameSite=None und generell empfohlen, wenn ein SSL-Zertifikat vorhanden ist.
  • HttpOnly: Verhindert den Zugriff auf das Cookie über JavaScript und schützt so vor Cross-Site-Scripting (XSS).
  • SameSite: Kontrolliert die Übertragung bei webseitenübergreifenden Anfragen und schützt vor CSRF.

Erst die Kombination aller drei Attribute bietet einen robusten Schutz für Session-Cookies und andere sicherheitsrelevante Daten. Webseitenbetreiber sollten diese Attribute bei jeder Cookie-Konfiguration berücksichtigen, um die Sicherheit ihrer Webanwendung zu maximieren.