Was Sie an einem Cookie prüfen können
Ein Cookie kann beispielsweise eine Spracheinstellung speichern oder einen Verweis auf eine serverseitige Anmeldung enthalten. Aus seinem Namen allein lässt sich weder sein Inhalt noch seine Bedeutung für die Anmeldung sicher ableiten. Klären Sie deshalb zuerst, welche Stelle den Cookie setzt und wofür die Anwendung ihn verwendet.
Ein Set-Cookie-Header zeigt, was der Server dem Browser übermittelt. Ob der Browser den Cookie annimmt, wie lange er ihn behält und bei welcher späteren Anfrage er ihn sendet, sind weitere Fragen. Zusätzliche Browserregeln und Nutzereinstellungen können die Speicherung oder den Versand einschränken. MDN: Cookies verwenden
Der Web Security Check analysiert Cookieattribute in den beobachteten Set-Cookie-Headern einer abgerufenen Antwort. Er führt keinen Login durch und erfasst weder alle Pfade noch später per JavaScript gesetzte Cookies oder den vollständigen Browserbestand. Ein nicht beobachteter Cookie ist damit weder als fehlend noch als sicher bestätigt. Ein einzelner Befund kann dennoch Ihre erste Konfigurationsfrage beantworten.
Secure, HttpOnly und SameSite haben verschiedene Aufgaben
Bei schmaler Ansicht können Sie die Tabelle seitlich scrollen.
| Attribut | Was es begrenzt | Was daraus nicht folgt |
|---|---|---|
Secure | Der Browser sendet den Cookie nur über einen als sicher behandelten Kanal, bei öffentlichen Webadressen normalerweise HTTPS. | Kein Schutz gegen jede Manipulation, kompromittierte Endpunkte oder eine unsichere Anwendung. |
HttpOnly | Nicht-HTTP-Cookie-APIs wie document.cookie dürfen den Cookie nicht auslesen. | Eingeschleustes JavaScript kann weiterhin Anfragen im Browser auslösen, bei denen passende Cookies automatisch mitgesendet werden. |
SameSite | Der Browser beschränkt den Cookieversand abhängig vom Site-Kontext und dem gewählten Wert. | Keine allgemeine Sperre sämtlicher Cross-Site-Anfragen und kein vollständiger CSRF-Schutz. |
Bei Secure behandeln manche Browser lokale Entwicklungsadressen besonders. Solche Ausnahmen sind keine Grundlage für eine öffentliche HTTP-Konfiguration. Für produktive Webanwendungen muss die HTTPS-Auslieferung einschließlich vorgeschalteter Proxys zur Cookiekonfiguration passen. MDN: Set-Cookie
Für einen serverseitig verwendeten, nur an einen Host gebundenen Sessioncookie kann beispielsweise folgende Kombination passen:
Set-Cookie: __Host-session=abc123; Path=/; Secure; HttpOnly; SameSite=LaxDer Wert ist erfunden, das Beispiel nicht praktisch getestet. Es setzt HTTPS, einen unterstützenden Browser und einen Ablauf voraus, der mit Lax funktioniert. __Host- verlangt zusätzlich zum sicheren Setzen ausdrücklich Path=/ und verbietet ein Domain-Attribut. Das Präfix ersetzt weder HttpOnly noch die bewusste Wahl von SameSite. Das weniger einschränkende __Secure- verlangt in unterstützenden Browsern ebenfalls sicheres Setzen mit Secure, aber keine zusätzliche Host-/Pfadbindung wie __Host-. Ein allgemeiner Schutz vor Cookie-Jar-Overflow folgt aus diesen Präfixen nicht.
Site, Host und Pfad auseinanderhalten
Für gewöhnliche HTTP(S)-Adressen richtet sich „same-site“ nach dem Schema und der registrierbaren Domain. Die Grenze ergibt sich nicht immer allein aus dem letzten Punkt im Namen: Die Public Suffix List berücksichtigt auch bestimmte Hostingangebote.
https://app.example.com und https://api.example.com sind same-site, aber verschiedene Origins. Ein Origin wird durch Schema, Host und Port bestimmt. Ein Wechsel von HTTPS zu HTTP kann deshalb cross-site sein, während ein anderer Port bei gleichem Schema und gleicher registrierbarer Domain die Site nicht ändert. Eine kompromittierte Geschwisterdomain wird durch SameSite somit nicht grundsätzlich ausgeschlossen. web.dev: Same-site und same-origin
Bei schmaler Ansicht können Sie die Tabelle seitlich scrollen.
| Angabe | Bedeutung für den Versand |
|---|---|
Kein Domain-Attribut | Host-only: Der Cookie ist an den Host gebunden, der ihn gesetzt hat. |
Domain=example.com | Der Geltungsbereich umfasst diese Domain und passende Unterdomains. Der setzende Host darf keine beliebige fremde Domain wählen. |
Path=/account | Der Anfragepfad muss zum Cookiepfad passen; beispielsweise passt /account/settings, /accounting dagegen nicht. |
Path=/ | Der Cookie kann für passende Anfragen an alle Pfade dieses Hosts beziehungsweise seines Domainbereichs berücksichtigt werden. |
Path ist keine verlässliche Sicherheitsgrenze zwischen Anwendungen auf demselben Host. Domain- und Pfadangaben entscheiden auch mit darüber, welchen vorhandenen Cookie Sie ändern oder löschen. RFC 6265: Domain und Path
SameSite wählen und seine CSRF-Grenze verstehen
Cross-Site Request Forgery nutzt unter anderem aus, dass der Browser einer von außen ausgelösten Anfrage vorhandene Anmeldeinformationen beifügen kann. Ob eine Anwendung daraufhin eine Aktion ausführt, hängt zusätzlich von ihrer Authentisierung, Autorisierung und CSRF-Prüfung ab.
Die folgende Tabelle beschreibt ausschließlich die SameSite-Bedingung. Sie setzt voraus, dass der Cookie bereits gespeichert ist, Domain und Pfad passen und keine andere Browserregel den Versand verhindert.
Bei schmaler Ansicht können Sie die Tabelle seitlich scrollen.
| Anfragekontext | SameSite=Strict | Ausdrücklich SameSite=Lax | SameSite=None; Secure |
|---|---|---|---|
| Same-site-Anfrage | SameSite erlaubt den Versand. | SameSite erlaubt den Versand. | SameSite erlaubt den Versand. |
| Cross-site-Top-Level-Navigation mit sicherer HTTP-Methode, etwa GET | Cookie wird zurückgehalten. | SameSite erlaubt den Versand. | SameSite erlaubt den Versand. |
| Cross-site-POST, etwa durch ein Formular | Cookie wird zurückgehalten. | Cookie wird zurückgehalten. | SameSite schließt den Versand nicht aus. |
| Cross-site-Anfrage einer eingebetteten Ressource | Cookie wird zurückgehalten. | Cookie wird zurückgehalten. | SameSite schließt den Versand nicht aus. |
„Sichere HTTP-Methode“ ist ein Protokollbegriff, kein Urteil über die Sicherheit Ihrer Anwendung. Zustandsänderungen gehören nicht in einen GET-Abruf. Auch mit Lax bleiben zusätzliche CSRF-Gegenmaßnahmen erforderlich. Ein fehlendes SameSite-Attribut ist nicht gleichbedeutend mit None: Browser können einen Lax-Standard anwenden; eine weniger strenge Variante kann bei kürzlich gesetzten Cookies bestimmte Top-Level-POSTs zulassen. Verlassen Sie sich nicht auf diesen Übergangsfall. 6265bis-22: SameSite-Verarbeitung
Für Login-, Zahlungs- und Einbettungsabläufe ist der Unterschied praktisch relevant. Bei einem externen Link wird ein Strict-Cookie bei der ersten Cross-Site-Navigation nicht mitgeschickt. Das bedeutet nicht automatisch, dass die serverseitige Sitzung beendet oder eine erneute Anmeldung erforderlich ist. None; Secure kann für bewusst benötigte Cross-Site-Funktionen passen, setzt Browserbeschränkungen für Drittanbieter-Cookies aber nicht außer Kraft.
Synthetischer Modellfall · keine Messung
Was SameSite bei diesem POST begrenzt
Löst eine Cross-Site-Anfrage aus.
Die Anfrage selbst kann in beiden Fällen ankommen.
Vorausgesetzt: Der Cookie ist gespeichert, Domain und Pfad passen, keine andere Browserregel verhindert den Versand.
SameSite=None; Secure- SameSite schließt die Beigabe des Cookies nicht aus.
SameSite=Strict- SameSite hält den Cookie zurück.
Danach entscheidet die Anwendung: Authentisierung, Autorisierung und CSRF-Prüfung bleiben erforderlich.
Kein Nachweis einer ausgeführten Transaktion und keine allgemeine Zusage zur Abwehr von Angriffen.
Laufzeit und Abmeldung getrennt prüfen
Max-Age setzt eine Lebensdauer in Sekunden; Expires nennt einen Zeitpunkt. Sind beide vorhanden, hat Max-Age Vorrang. Ein Browser kann einen Cookie schon vorher entfernen, etwa aufgrund seiner Speicherregeln oder einer Nutzeraktion.
Fehlen beide Angaben, handelt es sich um einen Sessioncookie im Sinne der Browserspeicherung. Wann eine Browsersitzung endet, bestimmt der Browser; eine Sitzungswiederherstellung kann Cookies nach einem Neustart weiterverwenden. Der Eintrag „Session“ beweist deshalb weder einen garantierten Löschzeitpunkt noch eine gültige Anmeldung.
Zum Entfernen eines Cookies muss die Anwendung den passenden Namen sowie die passende Domain-/Hostbindung und den Pfad treffen, beispielsweise mit Max-Age=0. Die serverseitige Anwendungssitzung muss beim Logout zusätzlich ungültig werden. Das Löschen im Browser allein entwertet keinen bereits kopierten Sessionbezeichner. MDN: Cookies entfernen, OWASP: Session Management
Konfiguration in drei Schritten bearbeiten
1. Den benötigten Ablauf und die zuständige Stelle bestimmen
Erfassen Sie Cookiezweck, setzende Anwendung, benötigte Hosts/Pfade, Laufzeit und Zugriff durch JavaScript. Prüfen Sie besonders externe Anmeldungen, Zahlungsrückleitungen und eingebettete Inhalte. Ein serverseitig verwendeter Sessioncookie kann HttpOnly erhalten; ein absichtlich durch JavaScript gelesenes Einstellungscookie braucht eine andere Entscheidung.
Setzen Sie die Attribute möglichst dort, wo der Cookie entsteht. Ein Reverse Proxy kann Attribute von Upstream-Cookies ergänzen, kennt aber nicht automatisch deren Anwendungszweck.
2. Gezielte Cookieoptionen setzen
Das folgende Nginx-Fragment verändert den vom Upstream gesetzten Cookie namens session. Es benötigt proxy_cookie_flags ab Nginx 1.19.3 und einen passenden Proxykontext:
location / {
proxy_pass http://backend;
proxy_cookie_flags session secure httponly samesite=lax;
}backend ist ein Platzhalter für Ihren eingerichteten Upstream. Das Fragment ist nicht ausgeführt. Es ändert weder den Cookie-Namen noch automatisch Domain, Path oder Laufzeit und erfasst keine später im Browser erzeugten Cookies. Bei mehreren Regeln gilt die erste zutreffende; prüfen Sie auch geerbte Konfiguration. Übertragen Sie eine SameSite-Regel nicht ungeprüft auf sämtliche Cookies. Nginx: proxy_cookie_flags
Für eine bereits eingerichtete express-session-Middleware können Sie folgende Optionen als cookie-Option verwenden:
const cookieOptions = {
secure: true,
httpOnly: true,
sameSite: 'lax',
path: '/',
};Das ist nur das Cookieoptionsobjekt, keine vollständige Express-Anwendung. Secret, Sessionstore und übrige Middlewarekonfiguration sind hier nicht enthalten. Mit secure: true muss die Anwendung die Anfrage als HTTPS erkennen. Hinter einem Reverse Proxy muss dessen Vertrauenskonfiguration zum tatsächlichen Aufbau passen; eine pauschale Proxyfreigabe ist keine sichere Standardlösung. Auch dieses Beispiel ist nicht praktisch getestet. Express: express-session
3. Antwort und Browserablauf erneut prüfen
Für einen ersten Blick auf die Header einer GET-Antwort können Sie auf einem berechtigten Ziel beispielsweise verwenden:
curl -sS -D - -o /dev/null https://example.com/loginDie Adresse ist ein Platzhalter. Dieser nicht ausgeführte Aufruf führt keinen Login durch, folgt keiner Weiterleitung und bildet keine Browser-Cookieregeln ab. Ein HEAD-Abruf mit -I ist eine andere Anfrage; seine Antwort muss nicht dieselben Cookies setzen. Prüfen Sie die Antwort, in der der relevante Cookie tatsächlich entsteht, etwa nach einem berechtigten Login. curl: dokumentierte Optionen
Kontrollieren Sie anschließend im Browser gespeicherte Attribute, Blockiergründe und die Cookies einer späteren Anfrage. Vergleichen Sie auch Abmeldung und betroffene externe Abläufe.
Einen technischen Befund nachvollziehbar dokumentieren
Halten Sie Cookiezweck, betrachteten Ablauf, Browserkontext, beobachtete Attribute, offene Fragen und erneute Prüfung fest. Sessionwerte gehören nicht in eine öffentliche Übergabedokumentation. Die Attribute können technische Schutzmaßnahmen unterstützen; sie belegen weder vollständige Sicherheit noch Rechtmäßigkeit oder DSGVO-Konformität.
Ob und welche Anforderungen aus PCI DSS, NIS2 oder anderen Vorgaben im konkreten Fall gelten, ist getrennt zu beurteilen. Ein Cookiecheck ist dafür kein vollständiger Nachweis. Aus technischen Einstellungen lässt sich insbesondere nicht allein entscheiden, ob ein Cookie eine Einwilligung benötigt.
Passende Vertiefung und Konfigurationswege
Wenn eine öffentliche Antwortprüfung Ihre nächste Frage klärt, können Sie den Web Security Check öffnen. Die oben beschriebenen Login- und Browserprüfungen bleiben ein eigener Schritt.
Häufig gestellte Fragen
Was leisten die wichtigsten Cookieattribute?
Secure beschränkt die Übertragung auf sichere Verbindungen. HttpOnly sperrt das Auslesen über nicht-HTTP-Cookie-APIs. SameSite beschränkt den Versand in bestimmten Site-Kontexten. Diese Mechanismen mindern einzelne Risiken; sie verhindern nicht jede XSS-, CSRF- oder Session-Hijacking-Variante. Die Auswahl hängt vom Cookiezweck ab.
Was unterscheidet SameSite=Strict und SameSite=Lax?
Strict hält Cookies bei Cross-Site-Anfragen zurück. Ausdrückliches Lax erlaubt zusätzlich Cross-Site-Top-Level-Navigation mit sicheren HTTP-Methoden wie GET. Login-, Zahlungs- und Einbettungsabläufe müssen dazu passen. SameSite ersetzt nicht sämtliche CSRF-Gegenmaßnahmen.
Verhindert HttpOnly die Wirkung von XSS?
HttpOnly verhindert das direkte Auslesen des Cookies über APIs wie document.cookie. Eingeschleustes JavaScript kann trotzdem Anfragen im Browser des angemeldeten Nutzers auslösen. XSS muss unabhängig von den Cookieattributen verhindert werden.
Welche Bedingungen hat __Host-?
Ein unterstützender Browser verlangt sicheres Setzen, Secure, ausdrücklich Path=/ und kein Domain-Attribut. Ein berechneter Standardpfad / reicht nicht. Das Präfix setzt weder HttpOnly noch eine passende SameSite-Einstellung für Sie.
Was prüft der Web Security Check bei Cookies?
Er analysiert beobachtete Set-Cookie-Header der abgerufenen Antwort. Login, andere Pfade, spätere JavaScript-Cookies und der gesamte Browserbestand werden nicht erfasst. Eine Einordnung als Sessioncookie anhand des Namens ist ein Hinweis, kein nachgewiesener Anmeldevorgang.
Belegen passende Cookieattribute rechtliche Konformität?
Nein. Die Attribute können technische Schutzmaßnahmen unterstützen, belegen aber weder rechtmäßige Verarbeitung noch vollständige Sicherheit. Zweck, Inhalt, tatsächlicher Einsatz und weitere Anforderungen müssen getrennt bewertet werden.
Quellen und technischer Stand
- RFC 6265: veröffentlichter Proposed Standard zu HTTP-Cookies.
- 6265bis-22: aktuelle Entwurfsrevision für die hier erläuterten SameSite- und Präfixregeln. Am 12.09.2026 im RFC-Editor-Verfahren, noch kein veröffentlichter RFC.
- MDN Set-Cookie und Cookies verwenden: Attribute und Browsergrenzen.
- OWASP Session Management: Sessionkontrolle und ergänzende Schutzmaßnahmen.
- Nginx Proxy-Modul und express-session: Voraussetzungen der gezeigten Konfigurationsfragmente.
Quellenstand: 12.09.2026. Die Beispiele erklären dokumentierte Regeln; sie sind keine praktisch geprüften Konfigurationen.