LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Data Privacy/Tutorials / Secure, HttpOnly, SameSite: Schutz und Grenzen von...
Diesen Artikel in anderen Sprachen lesen:

Secure, HttpOnly, SameSite: Schutz und Grenzen von Cookies

Secure, HttpOnly, SameSite: Schutz und Grenzen von Cookies

Management Summary

Cookie-Schutz richtet sich nach dem Zweck des gespeicherten Werts, besonders bei bestehenden Anmeldungen. Secure begrenzt die Übertragung auf geschützte Verbindungen, HttpOnly verhindert direkten Skriptzugriff und SameSite beschränkt das Mitsenden bei websiteübergreifenden Anfragen. Diese Maßnahmen ergänzen sich, ersetzen aber keine sichere Anwendung. Eine belastbare Prüfung untersucht tatsächliche Speicherung und Verhalten bei Anmeldung und Navigation. Das Zählen von Merkmalen oder ein einzelner Seitenabruf reicht dafür nicht.

Inhalt
  1. Secure: Übertragung über HTTPS
  2. HttpOnly: kein Zugriff über document.cookie
  3. SameSite: Kontext statt Verschlüsselung
  4. Ein Beispiel für einen serverseitigen Sitzungsnachweis
  5. Was eine Headerprüfung tatsächlich aussagt
  6. Fragen und Antworten
  7. Quellen

Secure, HttpOnly und SameSite schützen unterschiedliche Teile des Cookie-Einsatzes. Die passende Kombination hängt vom Zweck ab: Ein Sitzungsnachweis, an dem der Server eine bestehende Anmeldung erkennt, braucht andere Eigenschaften als eine ungefährliche Anzeigeeinstellung, die JavaScript auslesen soll. Eine bloße Zählung gesetzter Attribute ergibt deshalb keine Sicherheitsrangliste.

Secure: Übertragung über HTTPS

Secure beschränkt das Mitsenden auf sichere Verbindungen, bei gewöhnlichen Websites also HTTPS. Für localhost bestehen Browserausnahmen. Das Attribut verschlüsselt den Cookie-Wert nicht zusätzlich und verhindert keinen JavaScript-Zugriff.

Ohne Secure kann ein passendes Cookie bei einer HTTP-Anfrage unverschlüsselt übertragen werden. Eine anschließende HTTPS-Weiterleitung kommt dafür zu spät. Bereits wirksames HSTS kann die HTTP-Verbindung vor dem Versand auf HTTPS umstellen; ein erstmals empfangener HSTS-Header schützt jedoch nicht rückwirkend die erste HTTP-Anfrage. HTTPS allein fügt Cookies auch nicht automatisch Secure hinzu.

HttpOnly: kein Zugriff über document.cookie

HttpOnly entzieht das Cookie den üblichen JavaScript-Cookie-APIs. Das erschwert den direkten Diebstahl eines Sitzungswerts durch eingeschleuste Skripte. Der Browser kann das Cookie trotzdem an passende Anfragen anhängen, auch wenn JavaScript die Anfrage auslöst. HttpOnly beseitigt deshalb keine XSS-Schwachstelle (Ausführung eingeschleuster Skripte) und verhindert nicht sämtliche Aktionen innerhalb einer kompromittierten Sitzung.

Für serverseitige Sitzungsnachweise ist HttpOnly regelmäßig sinnvoll. Eine bewusst per JavaScript gelesene Anzeigeeinstellung kann dieses Attribut dagegen nicht verwenden. JavaScript kann HttpOnly nicht über document.cookie setzen. Ein fehlendes Attribut muss deshalb nach Cookie-Zweck bewertet werden, nicht allein nach Häufigkeit.

SameSite: Kontext statt Verschlüsselung

„Same-site“ ist nicht dasselbe wie „same-origin“. Bei gewöhnlichen Domains zählt das Schema zusammen mit der registrierbaren Domain. https://shop.example.com und https://login.example.com sind beispielsweise same-site, aber verschiedene Origins. Ein Wechsel von HTTPS zu HTTP ist cross-site.

  • Strict: restriktiv für siteübergreifende Kontexte; auch ein externer Link kann zunächst ohne das Cookie ankommen.
  • Lax: erlaubt zusätzlich bestimmte siteübergreifende Navigationen im obersten Browserfenster mit sicheren Methoden, etwa einen gewöhnlichen GET-Link. Ein eingebetteter Abruf oder ein gewöhnlicher Cross-site-POST fällt nicht darunter.
  • None: hebt die SameSite-Beschränkung auf und erfordert Secure. Andere Cookie- und Datenschutzregeln gelten weiterhin; Drittanbieter-Cookies sind dadurch nicht garantiert verfügbar.

Einige Browser verwenden ohne explizite Angabe eine Lax-Voreinstellung. Diese kann zeitlich begrenzte Ausnahmen für kürzlich gesetzte Cookies bei POST enthalten. Fehlendes SameSite bedeutet daher weder „überall mitsenden“ noch vollständigen CSRF-Schutz (gegen unerwünscht ausgelöste Anfragen mit bestehender Anmeldung). Explizite SameSite-Werte machen die Versandregeln nachvollziehbarer. Anfragen, die Daten ändern, etwa eine Adressänderung, benötigen zusätzliche Schutzmaßnahmen wie geprüfte CSRF-Tokens.

Secure schützt den Transport, HttpOnly den direkten Skriptzugriff und SameSite den Anfragekontext. Ein empfangener Header beweist keine Speicherung.
Secure schützt den Transport, HttpOnly den direkten Skriptzugriff und SameSite den Anfragekontext. Ein empfangener Header beweist keine Speicherung.

Ein Beispiel für einen serverseitigen Sitzungsnachweis

Set-Cookie: __Host-session=SERVER_GENERATED_RANDOM_VALUE; Path=/; Secure; HttpOnly; SameSite=Lax

Der Wert SERVER_GENERATED_RANDOM_VALUE ist ein Platzhalter für einen vom Server erzeugten sicheren Zufallswert. Das Präfix __Host- verlangt in unterstützenden Browsern Secure, Path=/ und das Fehlen eines Domain-Attributs. Das Cookie bleibt dadurch auf den setzenden Host begrenzt. Lax ist eine mögliche Ausgangskonfiguration; Anmeldeweiterleitungen und eingebettete Anwendungen brauchen einen eigenen Funktionstest.

Eine Reihe kleiner Behälter mit Siegeln auf den Deckeln; einer steht offen, sein Deckel liegt daneben
Symbolbild für verschiedene Schutzmerkmale; keine Rangfolge oder Messung von Websites.

Was eine Headerprüfung tatsächlich aussagt

Eine Set-Cookie-Zeile ist zunächst eine Anweisung, kein Beweis für ein gespeichertes Cookie. Ein Browser kann die Anweisung zurückweisen; eine Zeile kann auch ein Cookie ersetzen oder löschen. Mehrere Antworten einer Weiterleitungskette sind getrennt zu erfassen.

Ein einfacher Abruf der Startseite übersieht außerdem per JavaScript erzeugte Cookies sowie Antworten späterer Skript-, Bild- oder API-Anfragen. Kein Set-Cookie im Hauptdokument bedeutet deshalb nicht „die Website setzt keine Cookies“. Auch ein Aufruf ohne Klicks kann Skripte und weitere Abrufe auslösen.

Für eine belastbare Prüfung werden ein frisches Browserprofil, Browserversion, Start-URL, Zeitpunkt und Interaktionsfolge dokumentiert. Netzwerkantworten und tatsächlich gespeicherte Cookies werden getrennt verglichen. Zu jedem Cookie gehören Zweck, Host, Pfad, Lebensdauer und erforderlicher Skriptzugriff. Ein Attributzähler allein beantwortet keine dieser Fragen.

Fragen und Antworten

Ist HttpOnly wichtiger als Secure?

Eine allgemeine Rangfolge ist nicht sinnvoll. Ein Sitzungswert braucht sowohl Schutz beim Transport als auch Schutz vor direktem Skriptzugriff. SameSite ergänzt den Kontextschutz. Keines dieser Attribute ersetzt serverseitige Berechtigungsprüfungen oder die Behebung von XSS.

Kann Path den Zugriff verschiedener Anwendungen sicher trennen?

Path steuert die Auswahl für den Versand, ist aber keine verlässliche Sicherheitsgrenze gegen Skripte auf demselben Host. Für getrennte Vertrauensbereiche sind passende Host- und Anwendungsgrenzen erforderlich.

Beweist eine hohe Attributquote eine sichere Website?

Nein. Ein fehlendes HttpOnly kann bei einer harmlosen JavaScript-Einstellung beabsichtigt sein; ein vollständig markiertes Sitzungs-Cookie kann trotzdem zu einer fehlerhaft geschützten Anwendung gehören. Entscheidend sind Zweck, wirksames Browserverhalten und serverseitige Verarbeitung.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Beobachtungen aus anderen Umsetzungen, Einwände und Rückfragen sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.