Süti: SameSite
A teszt azt nézi, van-e SameSite attribútuma a kezdőoldal sütijeinek; állíts be Lax vagy Strict értéket.
A SameSite attribútum azt szabályozza, hogy a böngésző elküldi-e a sütit az idegen oldalról érkező (cross-site) kérésekkel. A php.net szerint ezzel a szerver jelezheti, hogy a sütit nem kell cross-site kéréssel együtt küldeni, ami csökkenti az információszivárgás kockázatát. Az MDN szerint három értéke van: Strict, Lax és None.
Strict: a süti csak azonos oldalról indított kéréssel megy el.Lax: a süti idegen oldalról is elmegy, ha a látogató egy hivatkozásra kattintva érkezik az oldalra (biztonságos metódusú, felső szintű navigáció), de beágyazott kéréssel nem.None: a süti idegen oldalról érkező kéréssel is elmegy; ehhez aSecurejelző is kötelező.
Hogyan mérjük
Szekció neve “Hogyan mérjük”A riport letölti a kezdőoldalt (legfeljebb 5 átirányítást követ), és a végső válasz Set-Cookie fejléceit nézi meg.
| Eredmény | Mikor |
|---|---|
| Megfelelő | minden sütinek van SameSite attribútuma |
| Hiba | legalább egy süti SameSite nélkül (vagy üres értékkel) érkezik (a riport a darabszámot és legfeljebb 10 nevet mutatja) |
| Nem értékelhető | az oldal nem küld sütit |
A teszt csak azt nézi, hogy az attribútum megvan-e; az értéket nem: a Strict, a Lax és a None egyaránt megfelelő. A JavaScripttel létrehozott sütiket és a nem a kezdőoldalon beállított sütiket nem látja.
Hogyan javítsd
Szekció neve “Hogyan javítsd”Az attribútumot az a kód állítja be, amelyik a sütit kiadja. A riport kódrészlete csak a PHP munkamenet-sütijére (PHPSESSID) szól; a többit annál kell beállítani, ami küldi.
Melyiket válaszd? A Lax a legtöbb oldalon jó kiindulás: a belső hivatkozások és az idegen oldalról érkező kattintások működnek. A Strict akkor jó, ha a sütire idegen oldalról érkezve sem lehet szükség. A None csak akkor kell, ha a sütit szándékosan idegen oldalról beágyazva is használni kell, és ehhez Secure is kell.
PHP (php.ini)
Szekció neve “PHP (php.ini)”Ha a PHPSESSID a hibás süti:
session.cookie_samesite = "Lax"PHP-kód
Szekció neve “PHP-kód”Saját kódban a setcookie() tömbös alakja (PHP 7.3-tól); a samesite értéke None, Lax vagy Strict:
setcookie( 'nev', 'ertek', [ 'secure' => true, 'httponly' => true, 'samesite' => 'Lax' ] );nginx (ha proxy mögött küldi a süti)
Szekció neve “nginx (ha proxy mögött küldi a süti)”Az proxy_cookie_flags direktíva (1.19.3-tól) a samesite=lax, samesite=strict és samesite=none jelzőket is ismeri:
proxy_cookie_flags ~ samesite=lax;Bővítmény vagy alkalmazás
Szekció neve “Bővítmény vagy alkalmazás”Ha a sütit egy bővítmény vagy webáruház adja, annak beállításában keresd a SameSite értéket, vagy kérd a fejlesztőjétől.
Hogyan ellenőrizd
Szekció neve “Hogyan ellenőrizd”Futtasd újra a riportot, vagy nézd meg parancssorban:
curl -sI "https://pelda.hu/?v=1" | grep -i '^set-cookie:'Minden sorban legyen SameSite=Lax (vagy Strict, None).
Készült: