Die Cookie-Flags Secure, HttpOnly und SameSite
Session-Cookies sind ein bevorzugtes Ziel. Drei Attribute — Secure, HttpOnly und SameSite — entscheiden, ob ein Angreifer sie stehlen oder missbrauchen kann. Fehlende Flags führen direkt zu Session-Hijacking und CSRF.
Was es ist
Secure sendet das Cookie nur über HTTPS. HttpOnly verbirgt es vor JavaScript (document.cookie). SameSite steuert, ob es bei Cross-Site-Anfragen gesendet wird.
Zusammen verkleinern sie die Angriffsfläche: Ein Angreifer kann das Cookie weder per eingeschleustem Skript lesen, noch über HTTP mitschneiden, noch von einer anderen Website aus mitnutzen.
Warum es wichtig ist
Ohne HttpOnly kann jeder XSS-Bug das Session-Cookie lesen und dem Angreifer eine eingeloggte Sitzung übergeben. Ohne Secure leckt das Cookie bei jeder einfachen HTTP-Anfrage.
Ohne SameSite hängt der Browser das Cookie an Cross-Site-Anfragen an, und das ist der Mechanismus, auf dem CSRF-Angriffe beruhen.
So behebst du es
Die meisten Frameworks stellen diese als Optionen beim Setzen des Cookies bereit.
res.cookie("session", token, {
secure: true,
httpOnly: true,
sameSite: "lax", // or "strict" for maximum protection
path: "/",
});Ein Cookie __Host- zu nennen, zwingt den Browser, Secure, Path=/ und kein Domain zu verlangen — eine starke, selbst durchsetzende Basis für Session-Cookies.
Brauchst du wirklich Cross-Site-Cookies, wird SameSite=None nur beachtet, wenn auch Secure gesetzt ist; andernfalls verwerfen moderne Browser das Cookie.
FAQ
Lax oder Strict für SameSite?
Lax ist ein sicherer Standard, der Top-Level-Navigationen weiterhin erlaubt. Strict ist strenger, kann aber Abläufe stören, bei denen Nutzer über externe Links ankommen und erwarten, eingeloggt zu sein.
Stoppen diese Flags XSS?
HttpOnly begrenzt den Schaden von XSS, indem es das Cookie verbirgt, verhindert XSS aber nicht. Kombiniere es mit einer starken Content-Security-Policy.
Ist deine App betroffen?
AppSafe prüft dies und Dutzende weitere Probleme in einem kostenlosen Scan.
Meine App gratis scannenVerwandte Guides
Content-Security-Policy (CSP): was sie ist und wie du eine hinzufügst
Der Header, der verhindert, dass eingeschleuste Skripte ausgeführt werden.
CORS-Fehlkonfiguration: die Wildcard- und Reflection-Fallen
Erlaube jeden Origin und jede Website kann deine API lesen.
Warum deine Website eine Weiterleitung von HTTP zu HTTPS braucht
Lass die unsichere Tür nicht offen.