Secure, HttpOnly und SameSite bei Cookies prüfen
Die Sicherheit eines Cookies hängt von kleinen Attributen ab, die bei Konfigurationsänderungen leicht entfallen.
Im Browser ausführen – kostenlos
Dieses Werkzeug liest einen Set-Cookie-Headerwert, bestätigt den Beginn mit Name und Wert und meldet, ob Secure, HttpOnly und SameSite vorhanden sind. Zusätzlich liefert es eine übersichtliche Liste fehlender Attribute und erleichtert damit Prüfungen, Bereitstellungen, Tests und CI-Pipelines. Die Prüfung ist deterministisch, behandelt Attributnamen ohne Beachtung der Groß- und Kleinschreibung und stellt keine Netzwerkanfragen.
Was das Werkzeug untersucht
Fügen Sie den Wert eines einzelnen Set-Cookie-Antwortheaders ein, beginnend mit Cookie-Name und Cookie-Wert. Das Werkzeug trennt das erste Paar name=value von den durch Semikola getrennten Attributen. Danach sucht es unabhängig von der Schreibweise nach Secure, HttpOnly und SameSite. Das Ergebnis enthält einen booleschen Wert für jeden Schutz, eine geordnete Liste fehlender Attribute und die Zusammenfassung `all_present`. Diese Ausgabe eignet sich für die manuelle Prüfung ebenso wie für automatisierte Freigaberegeln. Geprüft wird ausschließlich die Anwesenheit der drei Attribute; eine sichere Gültigkeitsdauer, ein geeigneter Geltungsbereich oder ein sicheres Anwendungsverhalten werden dadurch nicht garantiert. Ein vollständiges Ergebnis ist daher eine konkrete Konfigurationsprüfung und keine umfassende Bewertung der Websicherheit.
Bedeutung der einzelnen Attribute
Secure weist kompatible Clients an, das Cookie nur über eine sichere Verbindung zu senden. HttpOnly verhindert, dass gewöhnliches clientseitiges JavaScript das Cookie über übliche Browser-API ausliest, und verringert damit Wege zum Entwenden eines Sitzungstokens. SameSite steuert, wann der Browser das Cookie bei standortübergreifenden Anfragen mitsendet, und ist häufig Teil des Schutzes vor gefälschten Anfragen. Das Werkzeug meldet die Anwesenheit, wählt aber keine SameSite-Richtlinie, da Strict, Lax und None unterschiedliche Anforderungen erfüllen. Eine standortübergreifende Integration kann beispielsweise SameSite=None zusammen mit Secure benötigen. Bewerten Sie die Ergebnisse anhand des Cookie-Zwecks, der Empfindlichkeit der Anmeldung, der unterstützten Browser und der vorgesehenen standortübergreifenden Abläufe.
Einsatz in Entwicklung und CI
Prüfen Sie repräsentative Set-Cookie-Werte aus Anwendungstests, der Reverse-Proxy-Konfiguration oder der Framework-Ausgabe. Lassen Sie einen automatisierten Build fehlschlagen, wenn `all_present` falsch ist, oder setzen Sie mit den drei booleschen Werten und `missing_attributes` eine gezieltere Richtlinie um. Weil der Parser deterministisch und netzwerkfrei arbeitet, erzeugt dieselbe Eingabe im Browser und über die API dieselbe Ausgabe. Senden Sie pro Anfrage nur einen Header; mehrere zusammengefasste Set-Cookie-Werte sind mehrdeutig. Eine Eingabe ohne anfängliches name=value-Paar wird abgewiesen. Testen Sie nach einer Korrektur erneut die tatsächlich ausgegebene Antwort, da Middleware, Proxy, CDN oder Authentifizierungskomponenten Attribute verändern können.
Anwendungsfälle
Authentifizierungs-Cookies prüfen
Prüfen Sie ein beim Anmelden gesetztes Sitzungs-Cookie und erkennen Sie sofort eines der drei fehlenden Attribute.
Sicherheitsregel in CI ergänzen
Übergeben Sie einen Set-Cookie-Wert aus einem Integrationstest an die API und stoppen Sie die Pipeline, wenn `all_present` falsch ist.
Proxy-Änderungen validieren
Vergleichen Sie Header nach Änderungen an Reverse Proxy oder CDN, um beim Umschreiben verlorene Attribute zu entdecken.
Häufige Fragen
Was kostet die Prüfung?
Jeder API-Aufruf kostet $0.002. Die Browserversion kann lokal ausgeführt werden, ohne den Header an einen Netzwerkdienst zu senden.
Wird der SameSite-Wert validiert?
Nein. Das Werkzeug meldet nur, ob SameSite vorhanden ist. Die Wahl zwischen Lax, Strict und None hängt vom benötigten standortübergreifenden Verhalten ab.
Wird bei Attributnamen die Großschreibung beachtet?
Nein. Secure, HttpOnly und SameSite werden unabhängig von Groß- und Kleinschreibung erkannt.
Kann ich mehrere Set-Cookie-Header gemeinsam prüfen?
Nein. Senden Sie pro Anfrage einen Set-Cookie-Wert, damit Sie für jedes Cookie ein eindeutiges Ergebnis erhalten.
Warum wurde meine Eingabe abgelehnt?
Der Wert muss mit einem nicht leeren Cookie-Namen, einem Gleichheitszeichen und seinem Wert beginnen; danach können durch Semikola getrennte Attribute folgen.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/security/cookie-attribute-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"}'const res = await fetch("https://api.kit.forhosting.com/security/cookie-attribute-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/cookie-attribute-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/cookie-attribute-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/cookie-attribute-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "session_id=abc123; Path=/; Secure; HttpOnly; SameSite=Lax"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.cookie_attribute_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |