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).