TOOLBOX · SECURITY-CHECK
COOKIESCHECKEN.
Welche Cookies setzt Ihre Website beim ersten Besuch, und sind sie geschützt? Domain eingeben und je Cookie sehen, was fehlt.
WAS GEPRÜFT WIRD
Jedes Cookie.
Einzeln bewertet.
Cookies tragen Anmeldungen, Warenkörbe und Einstellungen. Wenige Attribute im Set-Cookie-Header entscheiden, ob sie unterwegs mitgelesen, von Skripten ausgelesen oder von fremden Websites aus mitgeschickt werden.
- 01
Secure
Der Browser schickt das Cookie nur über HTTPS. Fehlt Secure bei einem Sitzungs-Cookie, ist das kritisch: Wer die Verbindung mitliest, kann die Anmeldung übernehmen.
- 02
HttpOnly
Skripte auf der Seite können das Cookie nicht lesen. Eine Cross-Site-Scripting-Lücke kommt so nicht an das Sitzungs-Cookie.
- 03
SameSite
Regelt, ob das Cookie bei Anfragen mitgeht, die von fremden Websites ausgehen. SameSite=None ohne Secure verwerfen Browser ganz.
- 04
Präfixe
__Host- und __Secure- im Namen verpflichten den Browser zu strengen Regeln. Hält ein Cookie sie nicht ein, wird es verworfen.
- 05
Domain und Laufzeit
Ein Domain-Attribut öffnet das Cookie für alle Subdomains. Sehr lange Laufzeiten machen Geräte lange wiedererkennbar.
- 06
Einwilligung
Setzt der Server bekannte Analyse- oder Werbe-Cookies schon beim ersten Aufruf, weisen wir darauf hin. Welche das sind, sagen die Hersteller selbst.
GRENZEN DES CHECKS
Was der Server
nicht verrät.
Der Check sieht, was der Server mit Set-Cookie schickt: beim ersten Aufruf der Startseite, ohne Einwilligung. Ein Ergebnis ohne Fund heißt nicht, dass Ihre Website keine Tracking-Cookies setzt.
- Nicht erfasst: Cookies, die JavaScript im Browser setzt, etwa Google Analytics, der Meta Pixel oder ein Einwilligungsbanner in der üblichen Einbindung.
- Nicht erfasst: Cookies nach einer Anmeldung, im Warenkorb, nach der Einwilligung oder nur auf Unterseiten.
- Nicht erfasst: Cookies eingebetteter fremder Inhalte wie Videos, Karten oder Chat-Fenster. Sie gehören zu deren Domains.
- Sitzungs-Cookies erkennen wir an Standardnamen verbreiteter Plattformen wie PHPSESSID, JSESSIONID oder ASP.NET_SessionId und an Namensbestandteilen wie „sess“, „auth“ oder „login“.
Alle Cookies einer Seite, auch die von JavaScript, zeigen die Entwicklerwerkzeuge Ihres Browsers: In Chrome und Edge mit F12, dann unter „Anwendung“ bei „Cookies“. Öffnen Sie die Seite dafür in einem privaten Fenster und wählen Sie im Einwilligungsbanner noch nichts aus.
KONFIGURATION
Drei Attribute.
Wenige Zeilen.
So setzen verbreitete Server und Frameworks Secure, HttpOnly und SameSite. HttpOnly gehört an Cookies, die Ihr eigenes JavaScript nicht lesen muss, vor allem an Sitzungs-Cookies. Danach erneut prüfen.
nginx als Reverse Proxy
Ab Version 1.19.3 setzt proxy_cookie_flags die Attribute für Cookies der Anwendung dahinter. Die erste passende Zeile gilt; ~ ohne Muster trifft alle übrigen Cookies.
# im server- oder location-Block mit proxy_pass proxy_cookie_flags PHPSESSID secure httponly samesite=lax; proxy_cookie_flags ~ secure samesite=lax;Apache
Header edit hängt Attribute an vorhandene Set-Cookie-Zeilen an. Header aus CGI-Skripten und mod_proxy_fcgi (etwa PHP-FPM) stehen in der Tabelle always; findet die Zeile nichts, dieselbe Zeile zusätzlich ohne always eintragen.
# Apache 2.4 mit mod_headers Header always edit Set-Cookie "^(.*)$" "$1; Secure" Header always edit Set-Cookie "^(PHPSESSID=.*)$" "$1; HttpOnly; SameSite=Lax"PHP
Das Sitzungs-Cookie steuert die php.ini, eigene Cookies die Optionen von setcookie. Ohne Einstellung setzt PHP weder Secure noch HttpOnly.
; php.ini oder .user.ini session.cookie_secure = 1 session.cookie_httponly = 1 session.cookie_samesite = "Lax" session.use_strict_mode = 1 // eigene Cookies (ab PHP 7.3) setcookie('name', $wert, ['path' => '/', 'secure' => true, 'httponly' => true, 'samesite' => 'Lax']);Node.js mit Express
express-session setzt HttpOnly schon von sich aus, Secure und SameSite nicht. Hinter einem Proxy braucht Secure die Einstellung trust proxy.
// hinter einem Reverse Proxy mit HTTPS app.set('trust proxy', 1); app.use(session({ secret: process.env.SESSION_SECRET, resave: false, saveUninitialized: false, cookie: {secure: true, httpOnly: true, sameSite: 'lax'}, })); // eigene Cookies res.cookie('name', wert, {secure: true, httpOnly: true, sameSite: 'lax'});ASP.NET Core
Die Cookie-Richtlinie gilt für alle Cookies der Anwendung. HttpOnlyPolicy.Always nur, wenn kein eigenes Skript Cookies lesen muss.
// Program.cs using Microsoft.AspNetCore.CookiePolicy; builder.Services.Configure<CookiePolicyOptions>(options => { options.Secure = CookieSecurePolicy.Always; options.HttpOnly = HttpOnlyPolicy.Always; options.MinimumSameSitePolicy = SameSiteMode.Lax; }); // … app.UseCookiePolicy();ASP.NET (.NET Framework)
Im web.config für alle Cookies der Anwendung. SameSite kennt die Einstellung ab .NET Framework 4.7.2.
<!-- web.config, ab .NET Framework 4.7.2 --> <system.web> <httpCookies requireSSL="true" httpOnlyCookies="true" sameSite="Lax" /> </system.web>
FRAGEN
Gut zu wissen.
Was prüft der Cookie-Check?
Er ruft die Startseite Ihrer Website einmal ab wie ein Browser beim ersten Besuch, folgt bis zu fünf Weiterleitungen und liest alle Cookies, die der Server dabei mit Set-Cookie setzt. Jedes Cookie wird einzeln bewertet: Secure, HttpOnly, SameSite, die Präfixe __Host- und __Secure-, das Domain-Attribut, die Laufzeit und ob es laut Herstellerangaben der Analyse oder Werbung dient.
Meine Website nutzt Google Analytics. Warum findet der Check nichts?
Google Analytics, der Meta Pixel und viele andere Dienste setzen ihre Cookies in der üblichen Einbindung per JavaScript im Browser, nicht über den Server. Diese Cookies sieht ein Abruf durch unseren Server nicht, ebenso wenig Cookies, die erst nach einer Anmeldung, im Warenkorb oder nach der Einwilligung entstehen. Ein Ergebnis ohne Fund heißt deshalb nicht, dass Ihre Website keine Tracking-Cookies setzt. Den vollständigen Überblick zeigen die Entwicklerwerkzeuge Ihres Browsers.
Braucht jedes Cookie eine Einwilligung?
Nein. § 165 Abs. 3 TKG 2021 verlangt für das Ermitteln von Daten eine aktive Einwilligung auf Grundlage klarer und umfassender Informationen. Ausgenommen ist, was unbedingt erforderlich ist, damit ein vom Nutzer ausdrücklich gewünschter Dienst funktioniert. Ob ein Cookie dazu gehört, hängt von seinem Zweck ab. Der Check weist nur auf Cookies hin, die laut Hersteller der Analyse oder Werbung dienen und die der Server ohne jede Auswahl setzt. Eine rechtliche Prüfung ersetzt er nicht.
Wie entsteht die Note?
Jede Prüfung hat ein Gewicht: HTTPS 10, Secure 20, HttpOnly bei Sitzungs-Cookies 15, SameSite=None nur mit Secure 10, Präfixe 10 (wenn ein Cookie eines trägt), Domain 5 und Analyse- oder Werbe-Cookies ohne Einwilligung 10. Bestanden zählt voll, ein Hinweis halb, ein kritischer Befund nicht; ein kritischer Befund begrenzt die Note auf höchstens C. Setzt die Startseite gar keine Cookies, gibt es nichts zu bewerten. Die Note beruht dann nur darauf, ob die Seite über HTTPS ausgeliefert wird, und der Bericht sagt das dazu.
Speichert TOMORIS die Cookies meiner Website?
Nein. Die geprüfte Website setzt ihre Cookies gegenüber unserem Server, nicht in Ihrem Browser. Wir werten nur Namen und Attribute aus; die Werte erscheinen weder im Bericht noch im Zwischenspeicher. Den Bericht halten wir fünf Minuten im Arbeitsspeicher, damit wiederholte Abrufe die Website nicht erneut belasten; spätestens nach sechs Minuten ist er gelöscht.
TOOLBOX
Weitere
Werkzeuge.
- Kostenlos
Website-Sicherheitscheck
Sieben Prüfungen, eine Note: Header, Verschlüsselung, E-Mail-Schutz, DNS, Cookies, eingebundene Inhalte und security.txt. Mit Weg zu jedem Detail.
Ansehen - Kostenlos
Security-Header-Check
Prüft HTTPS, HSTS, Content-Security-Policy, Clickjacking-Schutz und weitere Header Ihrer Website. Mit Note von A+ bis F und fertiger Konfiguration.
Ansehen - Kostenlos
SSL/TLS-Check
Prüft Zertifikat, Kette und Restlaufzeit, welche TLS-Versionen Ihr Server annimmt und ob die Verschlüsselung Forward Secrecy bietet. Mit Note und Konfiguration.
Ansehen
IHR NÄCHSTER SCHRITT
Ergebnis da.
Und jetzt?
Wir ordnen Befunde ein, priorisieren nach Risiko und setzen auf Wunsch um: einmalig mit EXPERTS oder laufend im Betrieb mit GRID.