Cookie-Attribute
Was geprüft
Zerlegt werden die Set-Cookie-Kopfzeilen der Endantwort; geprüft wird je Cookie: Secure (auf https://-Seiten), HttpOnly bei vermutlichen Sitzungs- oder Anmelde-Cookies (Name enthält etwa sess, sid, auth, token, login oder phpsessid) und SameSite. Löschanweisungen werden nicht bewertet, Cookie-Werte nicht gespeichert. Cookies, die erst Skripte im Browser setzen, sieht dieser Punkt nicht; setzt die Antwort keine Cookies, trifft er nicht zu.
Wie relevant
Mittel, wenn Secure fehlt oder ein vermutliches Sitzungs-Cookie kein HttpOnly trägt. Niedrig, wenn nur SameSite fehlt, weil verbreitete Browser wie Chrome und Edge dann bereits Lax annehmen. Die Erkennung von Sitzungs-Cookies am Namen ist eine Näherung; das Ergebnis nennt die betroffenen Namen.
Warum
Ohne Secure kann ein Cookie bei einem http://-Aufruf unverschlüsselt mitgesendet werden. Ohne HttpOnly kann eingeschleuster Code ein Anmelde-Cookie auslesen und die Sitzung übernehmen. SameSite begrenzt, wann der Browser das Cookie bei Anfragen von fremden Seiten mitsendet.
Wie beheben
Setzen Sie Secure für alle Cookies auf https://-Seiten, HttpOnly für alle Cookies, die kein Skript lesen muss, und SameSite=Lax als Standard. Am saubersten geschieht das in der Anwendung, die das Cookie setzt; bei PHP-Sitzungen über die session-Einstellungen.
Nebenwirkung: HttpOnly bricht Cookies, die Skripte lesen müssen, etwa die Einwilligung eines Cookie-Banners; setzen Sie es dort nicht pauschal. SameSite=Strict kann Anmeldungen nach der Rückkehr von Zahlungsanbietern oder externen Links verlieren; SameSite=None erfordert Secure. Testen Sie Anmeldung, Warenkorb und Rückkehr aus der Zahlung nach der Änderung.
WordPress: WordPress setzt seine Anmelde-Cookies mit HttpOnly und auf https:// mit Secure. Auffällige Cookies stammen meist von Plugins, Shops oder Einwilligungs-Werkzeugen; prüfen Sie deren Einstellungen, bevor Sie Cookies serverseitig umschreiben.
Codebeispiel
PHP (php.ini oder .user.ini)
session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite = "Lax"Apache (.htaccess) — nur wenn die Anwendung es nicht kann
# Achtung: hängt die Attribute an jedes Cookie an, auch wenn sie schon gesetzt sind
# und auch an Cookies, die Skripte lesen müssen. Vorher prüfen.
<IfModule mod_headers.c>
Header always edit Set-Cookie "^(.*)$" "$1; Secure; SameSite=Lax"
</IfModule>nginx (Reverse Proxy, ab 1.19.3)
# Die erste passende Zeile gilt: spezielle Namen zuerst.
proxy_cookie_flags ~^(PHPSESSID|session)$ secure httponly samesite=lax;
proxy_cookie_flags ~ secure samesite=lax;Weiterführende Quellen
Quellen der Methodik
docs/SCORING.md— Status und Schweregrade (§2), Kategoriescore und Abdeckung (§3), Gesamtwert (§4), keine Doppelabzüge (§5), Prüfkatalog mit Gewichten (§6), Versionierung (§8), Formulierungsregeln (§9), bewusst nicht geprüft (§10)docs/KALIBRIERUNG.md— Abgleich der Schwerefaktoren und Kappen mit externen Ankern (Web Almanac, Lighthouse, MDN HTTP Observatory, SSL Labs), Entscheidung scoring@1.4.0