Sobes.tech
Junior

Wie kann man Cookies so einstellen, dass sie nach 3 Tagen gelöscht werden?

sobes.tech KI

Antwort von AI

Um eine "Cookie" mit Ablauf in 3 Tagen zu setzen, können Sie das Attribut expires oder max-age verwenden.

  • expires: Legt ein konkretes Datum und eine Uhrzeit fest, zu der die "Cookie" abläuft. Das Datum muss im GMT-Format (Koordinierte Weltzeit) sein.

  • max-age: Legt die Anzahl der Sekunden fest, nach denen die "Cookie" abläuft, beginnend mit dem Zeitpunkt der Erstellung. Dies ist eine flexiblere und empfohlene Methode.

Beispiel in JavaScript mit max-age:

// Aktuelle Zeit in Millisekunden erhalten
const now = new Date().getTime();

// Berechnung der Zeit in Millisekunden für 3 Tage
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;

// Berechnung der Ablaufzeit in Millisekunden
const expirationTime = now + threeDaysInMilliseconds;

// Erstellen eines Date-Objekts für die Ablaufzeit
const expirationDate = new Date(expirationTime);

// Setzen des Cookies mit dem Attribut expires, Umwandlung des Datums in GMT-Format
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();

// Oder Verwendung von max-age (empfohlen)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;

// Zusätzliche Attribute für bewährte Praktiken:
// secure - Cookie wird nur über HTTPS gesendet
// HttpOnly - Cookie ist nicht über document.cookie zugänglich (Schutz vor XSS)
// path - Pfad, für den das Cookie gültig ist
// domain - Domain, für die das Cookie gültig ist
// SameSite - verhindert das Senden des Cookies bei Cross-Site-Anfragen (empfohlen: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";

Vergleich zwischen expires und max-age:

Attribut Beschreibung Format Vorteile Nachteile
expires Gibt ein konkretes Ablaufdatum an. Datum im GMT-Format. Kompatibel mit älteren Browsern. Hängt von der genauen Uhrzeit auf dem Client ab.
max-age Gibt die Anzahl der Sekunden bis zum Ablauf an. Anzahl der Sekunden. Hängt nicht von der genauen Uhrzeit ab. Flexibler. Empfohlen. Wird möglicherweise nicht vollständig von älteren Browsern unterstützt.

Cookies können auch serverseitig gesetzt werden, z.B. mit dem Set-Cookie-Header.

Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax

Hier entspricht Max-Age=259200 3 Tagen in Sekunden (3 * 24 * 60 * 60).