Kijelentkeztet a webshopból, ha VPN-szervert váltasz?
Az új kilépési cím nem üríti ki a sütitárolót. Először döntsd el, a hálózati útvonalat, a bejelentkezett munkamenetet vagy a tárolt webhelyadatokat vizsgálod-e.
Változtasd meg a VPN-kilépést, miközben egy webshop nyitva van egy másik lapon, és a kosár általában még ott van. Ez nem VPN-hiba; ez a böngésző, amely pontosan azt teszi, amit mondtak neki. A sütit a böngésző küldi, és egy új hálózati útvonal nem változtat azon, amit a böngésző tárol. Három különböző kérdés bújik meg az „a webhely még mindig ismer engem” mögött, és a válasz attól függ, melyiket teszed fel valójában.
Három kérdés, egy tünet
Először: felismeri-e a webhely a tárolt sütit? Másodszor: felismeri-e a bejelentkezett fiókot, amely bármely egyedi sütitől függetlenül fennmarad? Harmadszor: felismer-e valamit a böngészőről vagy az eszközről a tárolt állapot helyett? Mindegyiknek megvan a maga tesztje és a maga orvossága.
| What you changed | What it actually tests |
|---|---|
| VPN exit address | Whether the site treats a different network origin differently |
| Cookie jar for one site | Whether a stored identifier was doing the recognition |
| Browser profile or account | Whether identity, rather than storage, links the visits |
A zavar nagy része abból ered, hogy az elsőt megváltoztatjuk, és azt várjuk, hogy a második követi. A hálózati cím és a böngészőtár két külön rendszer, amelyeket véletlenül ugyanaz az oldal használ.
Mit hordoz valójában egy süti
A HTTP-állapotkezelés, ahogyan azt az RFC 6265 meghatározza, szándékosan egyszerű: a kiszolgáló beállít egy nevet és egy értéket egy hatókörrel, és a böngésző visszaküldi azokat azokhoz a kérésekhez, amelyek megfelelnek ennek a hatókörnek. Az érték lehet munkamenet-azonosító, beállítás vagy átlátszatlan token, amelyet a kiszolgáló egy kosárrekordhoz rendel. A mechanizmus sehol nem említi az ügyfél címét.
Ez a kialakítás az oka annak, hogy a szokásos bejelentkezések és kosarak túlélnek egy hálózatváltást, és ez az oka annak is, hogy a nyomkövetőknél is túlélik. Ugyanaz a mechanizmus szolgálja mindkét célt, és nem tesz különbséget közöttük. A protokollban nincs mező az ügyfél címére, tehát nincs mit érvénytelenítenie egy új kilépésnek. Egy webhelynek, amely sütit akarna hálózati forráshoz kötni, magának kellene hozzáadnia ezt a logikát.
Amikor egy webhely visszaküld egy sütit, a kiszolgáló megkeresi azt a rekordot, amelyre ez az érték mutat. A kérés útvonalának megváltoztatása nem változtatja meg ezt a keresést, és ez a teljes magyarázat a bevásárlókosárral kapcsolatos megfigyelésre.
Döntsd el, mit mér a teszted
Mielőtt bármit megváltoztatnál, írd le azt az állapotot, ahonnan indulsz: melyik böngészőprofil, melyik fiók, mely webhelyadatok, melyik hálózati útvonal. Aztán változtass meg pontosan egyet közülük, és figyelj. Egy teszt, amely egyszerre változtatja a kilépési címet és a böngészőprofilt, semmit sem bizonyít egyikről sem.
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' https://shop.example/cart
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' --interface 198.51.100.44 https://shop.example/cartMindkét parancs ugyanazt a sütifájlt használja újra, a második pedig más helyi forráscímet kényszerít ott, ahol a gazdagép engedi. A kosár válasza mindkét esetben ugyanaz, mert a kiszolgáló soha nem látott más ügyfélidentitást, csak más útvonalat. Ez a mechanizmus egyetlen megismételhető kéréspárban.
Ha a cél annak megtekintése, hogy a webhely felismer-e téged tárolt állapot nélkül, töröld a webhely adatait, és ismételd meg. Ha továbbra is felismer, a következő gyanúsítottak a bejelentkezett fiók, egy követett hivatkozás vagy a böngésző jellemzői, és nem egy süti.
A megfelelő állapotot töröld, ne a hálózatot
Egy webhely tárhelyének eltávolítása a böngésző saját vezérlőihez tartozik, és gyakran mellékhatásként kijelentkeztet vagy visszaállítja a beállításokat. Nem törli a fiókot vagy a szolgáltatás által már tárolt rekordokat; azokhoz a szolgáltatás saját folyamatára van szükség.
A webhelyek közötti korlátozások a probléma másik részével foglalkoznak. A böngészők blokkolhatják vagy feloszthatják azt a tárhelyet, amelyet a beágyazott szolgáltatások egyébként megosztanának a webhelyek között, miközben az első féltől származó bejelentkezés tovább működik. A sikeres bejelentkezés tehát nem bizonyítéka annak, hogy a webhelyek közötti követés működik.
A privát ablakok egy másik eszköz, amelynek hatóköre szűkebb, mint az emberek várják. A webhelyek a munkamenet alatt továbbra is beállíthatnak sütiket, és a bejelentkezés továbbra is azonosítja a fiókot. Az ideiglenes állapotot a privát munkamenet befejezése dobja el, ami azt jelenti, hogy minden privát ablakot be kell zárni, nem csak egy lapot.
Végül kezeld az ujjlenyomat-alapú azonosítást lehetőségként, és ne az első magyarázatként. Az eszköz és a böngésző jellemzői tárolt süti nélkül is összekapcsolhatják a látogatásokat, és a tárhely törlése nem érinti őket. Először az egyszerű okokat ellenőrizd, aztán szélesítsd a vizsgálatot, és jegyezd fel, melyik állapotot változtattad meg, hogy a következő összehasonlítás értelmes legyen.