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.
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.
Ohne das Secure-Flag könnte ein Cookie auch über eine unverschlüsselte HTTP-Verbindung übertragen werden. Das eröffnet mehrere Angriffsvektoren:
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:
document.cookie). Damit wird das Risiko von Cross-Site-Scripting-Angriffen (XSS) reduziert, bei denen ein eingeschleustes Script versucht, Cookie-Daten auszulesen.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.
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:
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.
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:
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.
Die bereitgestellten Informationen dienen ausschließlich der allgemeinen Orientierung. Für Richtigkeit, Vollständigkeit und Aktualität wird keine Gewähr übernommen. Die Inhalte sind nicht rechtsverbindlich und nicht Bestandteil einer Leistungsbeschreibung.