Hogyan állíthatók be a cookie-k a böngészőben?
sobes.tech MI
Válasz az MI-től
A böngészőben a cookie-kat többféleképpen lehet beállítani.
-
HTTP fejléc
Set-Cookiesegítségével a szerverről. Ez a fő módszer a cookie-k beállítására, amely a szerver oldalán történik. A szerver küld egySet-Cookiefejlécet a böngészőnek, amely utasítja a böngészőt, hogy tároljon egy adott kulcs-érték párt.Példa szerver válaszra:
HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: username=johndoe; Expires=Thu, 21 Dec 2023 12:00:00 GMT; Path=/; Secure; HttpOnly Set-Cookie: settings=theme=dark&lang=en; Path=/A
Set-Cookiefejléc paraméterei:name=value: A cookie neve és értéke. Kötelező.Expires=<dátum>: A cookie lejárati dátuma és ideje. Ha nem adja meg, akkor munkamenet cookie lesz, és a böngésző bezárásakor törlődik. Dátum formátuma RFC 1123.Max-Age=<másodperc>: A cookie maximális élettartama másodpercben. Felülírja azExpiresértékét.Domain=<domain>: A domain, amelyhez a cookie tartozik. Alapértelmezés szerint az aktuális domain, de nem tartalmaz aldomainokat.Path=<útvonal>: Az útvonal a szerveren, ahol a cookie elérhető. Alapértelmezett a gyökér/.Secure: Jelző, hogy a cookie csak HTTPS-en keresztül küldhető.HttpOnly: Jelző, hogy a cookie nem érhető el JavaScript-bőldocument.cookie-n keresztül. Véd a XSS támadások ellen.SameSite=<mód>: A cookie küldését szabályozza cross-site kérések esetén. Értékek:Strict,Lax(alapértelmezett),None.
-
JavaScript oldalán a kliens oldalon. Az
document.cookieobjektummal lehet cookie-kat olvasni, írni és törölni.Cookie írása:
// Egyszerű cookie beállítása document.cookie = "username=johndoe"; // Cookie beállítása expires, path, secure és SameSite=Lax opciókkal const expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 nap document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;Cookie olvasása:
// A `document.cookie` összes elérhető cookie-t tartalmazó stringet ad vissza "kulcs1=érték1; kulcs2=érték2; ..." formátumban console.log(document.cookie);Cookie törlése: A cookie törléséhez a lejárati dátumot a múltba kell állítani.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // expires a múltba állítvaFontos, hogy törléskor ugyanazokat a
pathésdomainparamétereket kell megadni, mint a létrehozáskor. ASameSiteértékének is egyeznie kell a helyes törléshez. -
Harmadik fél JavaScript könyvtárak segítségével. Léteznek olyan könyvtárak, amelyek megkönnyítik a cookie-k kezelését (pl.
js-cookie). Ezek egy könnyebb API-t kínálnak a cookie-k beállítására, olvasására és törlésére.js-cookiepéldával:// Könyvtár betöltése // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // Cookie beállítása Cookies.set('username', 'johndoe'); // Cookie beállítása opciókkal Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires napokban // Cookie olvasása const username = Cookies.get('username'); // 'johndoe' vagy undefined const allCookies = Cookies.get(); // összes cookie-t objektumként adja vissza // Cookie törlése Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // megadni a path-et, ha az volt a beállításkor