Zum Inhalt springen

Secure Cookie

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

Das Secure Cookie-Attribut ist eine Sicherheitseigenschaft von HTTP-Cookies, die bewirkt, dass ein Cookie ausschließlich über verschlüsselte HTTPS-Verbindungen übertragen wird. Ist das Secure-Attribut gesetzt, ignoriert der Browser das Cookie bei unverschlüsselten HTTP-Anfragen. Dadurch wird verhindert, dass sensible Cookie-Daten wie Session-IDs im Klartext über das Netzwerk gesendet und von Angreifern abgefangen werden können.

Wie funktioniert das Secure-Attribut?

Wenn ein Webserver ein Cookie mit dem Secure-Flag setzt, speichert der Browser dieses Cookie zwar lokal, sendet es aber nur dann an den Server zurück, wenn die Verbindung über HTTPS aufgebaut wird. Bei einer unverschlüsselten HTTP-Anfrage an dieselbe Domain wird das Cookie unterdrückt.

Das Setzen des Attributs erfolgt im HTTP-Response-Header:

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

Wichtig ist, dass das Secure-Attribut allein nicht die Inhalte des Cookies verschlüsselt. Es stellt lediglich sicher, dass die Übertragung nur über eine bereits verschlüsselte Verbindung stattfindet. Die eigentliche Verschlüsselung der Daten übernimmt das SSL/TLS-Protokoll, das durch ein SSL-Zertifikat auf dem Server aktiviert wird.

Warum ist das Secure-Attribut notwendig?

Ohne das Secure-Flag könnte ein Cookie auch über eine unverschlüsselte HTTP-Verbindung übertragen werden. Das eröffnet mehrere Angriffsvektoren:

  • Man-in-the-Middle-Angriffe: Ein Angreifer, der den Netzwerkverkehr mitlesen kann (etwa in einem öffentlichen WLAN), könnte Session-Cookies abfangen und die Sitzung des Nutzers übernehmen.
  • Session-Hijacking: Mit einem gestohlenen Session-Cookie kann ein Angreifer sich als der legitime Nutzer ausgeben und auf dessen Konto zugreifen.
  • SSL-Stripping: Bei dieser Angriffsmethode wird eine HTTPS-Verbindung auf HTTP herabgestuft. Ohne Secure-Flag würde das Cookie auch über die herabgestufte Verbindung gesendet.

Websites, die ein SSL-Zertifikat einsetzen und HTTPS erzwingen, sollten das Secure-Attribut für alle Cookies setzen, um den durch HTTPS gebotenen Schutz nicht durch ungesicherte Cookie-Übertragung zu unterlaufen.

Das Secure-Attribut ist Teil eines dreistufigen Schutzkonzepts für Cookies, das verschiedene Angriffsvektoren abdeckt:

  • Secure: Beschränkt die Übertragung auf HTTPS und schützt vor dem Abfangen von Cookies im Netzwerk.
  • HttpOnly: Verhindert den Zugriff auf das Cookie über JavaScript (document.cookie). Damit wird das Risiko von Cross-Site-Scripting-Angriffen (XSS) reduziert, bei denen ein eingeschleustes Script versucht, Cookie-Daten auszulesen.
  • SameSite: Kontrolliert, ob das Cookie bei Anfragen von anderen Websites mitgesendet wird. Schützt vor Cross-Site-Request-Forgery (CSRF).

Jedes dieser Attribute adressiert einen anderen Angriffstyp. Erst die Kombination aller drei Attribute bietet einen umfassenden Schutz für sicherheitsrelevante Cookies wie Session-IDs oder Authentifizierungs-Token.

Wann sollte das Secure-Attribut gesetzt werden?

Grundsätzlich sollte jedes Cookie, das sensible Informationen enthält oder für die Authentifizierung verwendet wird, das Secure-Flag tragen. In der Praxis betrifft das:

  • Session-Cookies: Enthalten die Session-ID und ermöglichen den Zugriff auf die Benutzersitzung.
  • Authentifizierungs-Cookies: Speichern Login-Tokens oder „Angemeldet bleiben"-Informationen.
  • CSRF-Token-Cookies: Enthalten Tokens zum Schutz vor Cross-Site-Request-Forgery.
  • Präferenz-Cookies mit persönlichen Daten: Wenn Cookies personenbezogene Einstellungen speichern, sollten auch diese geschützt werden.

Als Faustregel gilt: Sobald eine Website über ein SSL-Zertifikat verfügt und HTTPS verwendet, sollten alle Cookies das Secure-Attribut erhalten. Funktionale Cookies wie Spracheinstellungen können davon ausgenommen werden, sofern sie keine sensiblen Daten enthalten.

Voraussetzungen und Einschränkungen

Das Secure-Attribut setzt voraus, dass die Website über HTTPS erreichbar ist, also ein gültiges SSL-Zertifikat installiert ist. Ohne HTTPS hat das Attribut keine Wirkung, da der Browser das Cookie in diesem Fall gar nicht senden würde. Entwickler sollten außerdem beachten:

  • In lokalen Entwicklungsumgebungen (localhost) erlauben die meisten Browser Secure-Cookies auch ohne HTTPS, um die Entwicklung nicht zu behindern.
  • Das Secure-Flag schützt nicht vor Zugriffen auf das Cookie durch JavaScript. Dafür ist das HttpOnly-Attribut zuständig.
  • Das Secure-Flag verschlüsselt den Cookie-Inhalt nicht. Sensible Daten sollten zusätzlich serverseitig verschlüsselt oder als undurchsichtiger Token gestaltet werden.

Für maximale Sicherheit empfiehlt es sich, alle drei Attribute (Secure, HttpOnly, SameSite) konsequent zu setzen und die Website vollständig auf HTTPS umzustellen, sodass unverschlüsselte Verbindungen per Redirect auf HTTPS umgeleitet werden.