Was sichere Cookies ausmacht
Sichere Cookies tragen die Attribute Secure, HttpOnly und SameSite. Sie gehen dann nur über verschlüsselte Verbindungen, bleiben vor Skripten verborgen und werden nicht von fremden Seiten mitgeschickt.
So funktioniert es
Ein Cookie ist ein kleiner Wert, den der Server mit dem Header Set-Cookie im Browser ablegt und den der Browser bei jeder weiteren Anfrage mitschickt. Am wichtigsten ist das Sitzungs-Cookie: Wer es hat, ist für deine Website angemeldet. Deshalb lohnt es sich für Angreifer, Cookies abzugreifen oder für sich arbeiten zu lassen.
Drei Attribute hinter dem Wert schützen davor:
Secure: Der Browser schickt das Cookie nur über HTTPS, nie über eine unverschlüsselte Verbindung, auf der es jemand mitlesen könnte.HttpOnly: Skripte auf der Seite können das Cookie nicht lesen. Ein eingeschleustes Skript kommt so nicht an die Sitzung.SameSite: Es regelt, ob das Cookie mitgeht, wenn eine fremde Seite eine Anfrage an deine auslöst.Strictschickt es dann nie mit,Laxnur, wenn der Besucher einem Link zu deiner Seite folgt,Noneimmer.
Worauf es ankommt
- Secure immer. Ohne
Secureist ein Cookie auf jeder unverschlüsselten Verbindung lesbar. Auf einer Seite, die nur über HTTPS läuft, gibt es keinen Grund, darauf zu verzichten. - SameSite ausdrücklich setzen.
Laxpasst für die meisten Cookies,Strictfür besonders heikle. Ohne Angabe behandelt Chrome Cookies wieLax, andere Browser nicht durchgehend.SameSite=Nonefunktioniert nur zusammen mitSecureund ist nur für Cookies gedacht, die in eingebetteten Inhalten auf fremden Seiten gebraucht werden. - HttpOnly, wenn kein Skript das Cookie braucht. Für Sitzungs-Cookies ist es Pflicht. Manche Cookies liest ein Skript bewusst, etwa eine Spracheinstellung; dann ist das Fehlen kein Fehler.
- Was der Bericht sieht. Geprüft werden die Cookies, die deine Startseite per Header setzt. Cookies, die erst ein Skript im Browser anlegt, und Cookies nach dem Anmelden erscheinen dort nicht; prüfe sie in den Entwicklerwerkzeugen des Browsers.
So richtest du es ein
Ein Sitzungs-Cookie sieht so aus:
Set-Cookie: session=…; Path=/; Secure; HttpOnly; SameSite=Lax
Die Attribute setzt die Anwendung, die das Cookie erzeugt: das CMS, der Shop oder das Framework. Für Sitzungen gibt es dort meist eine Einstellung, in PHP zum Beispiel session.cookie_secure, session.cookie_httponly und session.cookie_samesite. Cookies von Plugins oder Drittanbietern lassen sich oft nur über deren Einstellungen ändern. Das erledigst du im Admin-Bereich oder deine Agentur in der Konfiguration.