Hilfe

Cookies absichern

Was die Merkmale Secure und HttpOnly bewirken und wie Sie sie setzen.

Was wir prüfen

Ein Cookie ist ein kleiner Merkzettel, den Ihre Seite im Browser ablegt, etwa für den Warenkorb oder die Anmeldung. Gelangt ein Anmelde-Cookie in fremde Hände, kann sich jemand als Ihr Nutzer ausgeben. Wir schauen uns die Cookies an, die Ihre Startseite beim ersten Aufruf setzt, und prüfen bei jedem zwei Merkmale. Im Ergebnis stehen dazu höchstens sechs Hinweise.

Gesetzt wird ein Cookie über den Header Set-Cookie. Hinter dem Wert stehen Merkmale, die dem Browser sagen, wie er mit dem Cookie umgehen soll. Fehlen Secure oder HttpOnly, geht der Browser lockerer damit um.

Cookies fließen nicht in die Note ein. Cookies, die erst nach einer Anmeldung oder per JavaScript gesetzt werden, sehen wir nicht.

Wir melden nur Cookies, deren Name nach Sitzung, Anmeldung oder Token aussieht, etwa session, sid, PHPSESSID, JSESSIONID, laravel_session, fe_typo_user oder auth_token. Cookies für Sprache, Statistik, Lastverteilung oder Einwilligung tragen kein Konto und müssen oft für Skripte lesbar sein. Für sie wäre der Hinweis ein Fehlalarm. Schutz-Token gegen gefälschte Formulare (CSRF, XSRF) muss Ihr eigenes Skript lesen, bei ihnen prüfen wir nur Secure.

Secure

Mit dem Merkmal Secure schickt der Browser das Cookie nur über verschlüsselte Verbindungen. Ohne Secure reicht ein einziger Aufruf über http, und das Cookie geht unverschlüsselt mit. Im selben Netz kann es dann jemand mitlesen.

So beheben Sie es: Hängen Sie Secure an jedes Cookie. Läuft Ihre Seite über HTTPS, gibt es keinen Grund dagegen.

HttpOnly

Mit HttpOnly ist das Cookie für Skripte unsichtbar. Das schützt vor allem Anmelde-Cookies. Läuft fremder Code auf Ihrer Seite, kann er sie dann nicht auslesen und sich nicht als Ihr Nutzer ausgeben. Wie solcher Code auf die Seite kommt und wie Sie ihn bremsen, steht beim Schutz gegen eingeschleuste Skripte.

So beheben Sie es: Setzen Sie HttpOnly bei allem, was Ihr eigenes Skript im Browser nicht lesen muss, auf jeden Fall bei Sitzungs-Cookies. Ausnahme sind Cookies, die ein Skript braucht, etwa ein Einwilligungsbanner, das sich die Auswahl der Besucher merkt.

So sieht es richtig aus

Antwort-Header
Set-Cookie: session=…; Path=/; Secure; HttpOnly; SameSite=Lax

SameSite=Lax prüfen wir nicht, es ist aber ein guter Standard. Damit können fremde Seiten schwerer im Namen Ihrer Besucher Anfragen mit dem Cookie auslösen. So setzen Sie die Merkmale an zwei häufigen Stellen:

php.ini
session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite = Lax
Node.js · Express
res.cookie("session", value, { secure: true, httpOnly: true, sameSite: "lax" });

Stammt ein Cookie von einem fremden Dienst, etwa von einem Statistik-Tool oder dem Shop-System, können Sie es oft nicht selbst ändern. Sehen Sie dann in dessen Einstellungen nach.

Noch Fragen? Schreiben Sie uns.

Ist Ihre App
wasserdicht?

Hullwise findet die Lecks, bevor es andere tun: offene Schlüssel, Datenbank-Zugänge und veraltete Software. Zu jedem Befund gibt es eine Anleitung zur Behebung.

https://

Klicken Sie auf einen Befund, um ihn als behoben zu markieren.

Preise ansehenSo läuft ein Scan ab

Ship fast. Stay hullwise.