Slapukų tipai: išsamus techninis vadovas
Ne visi slapukai vienodi. Slapuko tipas lemia, kiek ilgai jis galioja, kas gali jį nuskaityti, kaip saugiai jis perduodamas ir — svarbiausia — ar jam reikalingas naudotojo sutikimas. Šių skirtumų supratimas yra būtinas tiek atitikčiai, tiek techniniam įgyvendinimui.
Seanso slapukai ir nuolatiniai slapukai
Esminis skirtumas yra tas, kiek ilgai slapukas galioja.
Seanso slapukai
Seanso slapukas egzistuoja tik naršyklės seanso metu. Jis neturi Expires ar Max-Age atributo. Kai naudotojas uždaro naršyklę, slapukas ištrinamas.
Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly
Seanso slapukai paprastai naudojami:
- Prisijungimo būsenai išlaikyti apsilankymo metu
- Pirkinių krepšelio turiniui
- CSRF apsaugos žetonams
- Kelių žingsnių formų duomenims
Kadangi seanso slapukai neišlieka, privatumo požiūriu jie paprastai laikomi mažiau invaziniais. Tačiau jiems vis tiek reikalingas sutikimas, jei jie nėra griežtai būtini paslaugai, kurios naudotojas paprašė, teikti.
Nuolatiniai slapukai
Nuolatinis slapukas turi aiškią galiojimo pabaigos datą. Jis išlieka po naršyklės paleidimo iš naujo ir lieka naudotojo įrenginyje, kol nustoja galioti arba yra rankiniu būdu ištrinamas.
Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure
Šis slapukas galios vienerius metus (31 536 000 sekundžių). Dažniausi naudojimo atvejai:
- „Prisiminti mane“ prisijungimo funkcija
- Kalbos ir temos nustatymai
- Analitikos identifikatoriai (Google Analytics slapukai galioja iki 2 metų)
- Reklamos sekimas (kai kurie reklamos slapukai galioja 13 mėnesių ar ilgiau)
Nuolatiniams slapukams pagal privatumo reglamentus taikoma didesnė priežiūra. CNIL (Prancūzijos duomenų apsaugos institucija) rekomendavo, kad maksimali slapuko galiojimo trukmė būtų 13 mėnesių, o sutikimas taip pat turi būti atnaujinamas bent kas 13 mėnesių.
Pirmosios šalies ir trečiosios šalies slapukai
Šis skirtumas yra esminis privatumo diskusijose ir tiesiogiai veikia sutikimo reikalavimus.
Pirmosios šalies slapukai
Pirmosios šalies slapuką nustato domenas, kuriame naudotojas faktiškai lankosi. Jei apsilankote example.com, bet koks example.com nustatytas slapukas yra pirmosios šalies slapukas.
Pirmosios šalies slapukai naudojami pagrindinei svetainės funkcionalumo veiklai: seansams, nustatymams, analitikai, kurią pati svetainė vykdo. Juos gali nuskaityti tik tas domenas, kuris juos nustatė.
Pavyzdys: apsilankote shop.example.com. Serveris nustato slapuką pavadinimu session_id. Šis slapukas siunčiamas tik į shop.example.com ir jo subdomenus. Jokia kita svetainė negali jo pasiekti.
Trečiosios šalies slapukai
Trečiosios šalies slapuką nustato domenas, kuris nėra tas, kuriame naudotojas lankosi. Kai example.com įkelia reklamos scenarijų iš ads.tracker.com, o tas scenarijus nustato slapuką tracker.com domene, tai yra trečiosios šalies slapukas.
Būtent taip veikia sekimas tarp svetainių. tracker.com slapukas siunčiamas su kiekvienu užklausimu į tracker.com, nepriklausomai nuo to, kuri svetainė sukėlė užklausą. Jei tracker.com scenarijai įterpti į 10 000 svetainių, jie gali stebėti tą patį naudotoją visose 10 000 svetainių.
Trečiosios šalies slapukai yra pagrindinis tiek reguliavimo priežiūros, tiek naršyklių lygmens apribojimų taikinys:
- Safari pagal numatytuosius nustatymus blokuoja trečiosios šalies slapukus nuo 2020 m. (ITP)
- Firefox pagal numatytuosius nustatymus blokuoja žinomus trečiosios šalies sekiklius (ETP)
- Chrome laipsniškai atsisako trečiosios šalies slapukų su savo Privacy Sandbox iniciatyva
- Reguliavimo vykdymo veiksmai daugiausia nukreipti į trečiosios šalies sekimo slapukus
Saugūs slapukai
Slapukas su Secure atributu siunčiamas tik per HTTPS ryšius. Jis niekada nebus perduodamas per nešifruotą HTTP.
Set-Cookie: auth_token=secret123; Secure
Tai neleidžia „žmogaus viduryje“ (man-in-the-middle) užpuolikui perimti slapuko per nesaugų ryšį. Bet koks slapukas, kuriame yra jautrios informacijos — seanso identifikatoriai, autentifikavimo žetonai, asmens duomenys — visada turėtų būti pažymėtas Secure.
Atitikties požiūriu, Secure žymos nenaudojimas jautriuose slapukuose gali būti laikomas nesugebėjimu įgyvendinti tinkamų techninių priemonių pagal BDAR 32 straipsnį (tvarkymo saugumas).
HttpOnly slapukai
Slapuko su HttpOnly atributu negali pasiekti JavaScript per document.cookie. Jis siunčiamas tik su HTTP užklausomis į serverį.
Set-Cookie: session_id=abc123; HttpOnly
Tai svarbi saugumo priemonė. Kryžminio scenarijų vykdymo (XSS) atakos dažnai bando pavogti slapukus, įterpdamos JavaScript, kuris nuskaito document.cookie. HttpOnly žyma visiškai užkerta kelią šiam būdui.
Seanso ir autentifikavimo slapukai beveik visada turėtų būti HttpOnly. Slapukai, kuriuos turi nuskaityti kliento pusės JavaScript (pvz., nustatymų slapukai, veikiantys naudotojo sąsają), negali būti HttpOnly.
SameSite slapukai
SameSite atributas valdo, ar slapukas siunčiamas su užklausomis tarp svetainių. Jis buvo pristatytas siekiant sumažinti kryžminių užklausų klastojimo (CSRF) atakas ir suteikti svetainėms daugiau kontrolės slapukų elgsenai tarp svetainių.
SameSite=Strict
Slapukas siunčiamas tik su užklausomis, kilusiomis iš tos pačios svetainės. Jei naudotojas paspaudžia nuorodą other.com, vedančią į your-site.com, slapukas nebus siunčiamas su ta pradine užklausa.
Tai yra saugiausias nustatymas, tačiau jis gali sutrikdyti teisėtą funkcionalumą. Pavyzdžiui, jei naudotojas paspaudžia nuorodą į jūsų svetainę iš el. laiško, jo seanso slapukas nebus siunčiamas, ir jis atrodys atsijungęs.
SameSite=Lax
Slapukas siunčiamas su aukščiausio lygio naršymu (paspaudus nuorodą), bet ne su kryžminėmis subužklausomis (įkeliant vaizdus, kadrus arba atliekant AJAX užklausas iš kitos svetainės). Tai numatytoji nuostata šiuolaikinėse naršyklėse, jei SameSite atributas nenurodytas.
Lax užtikrina pagrįstą pusiausvyrą tarp saugumo ir patogumo. Jis neleidžia trečiosios šalies svetainėms sukelti autentifikuotų veiksmų jūsų svetainėje, tuo pačiu leisdamas įprastam nuorodų naršymui veikti.
SameSite=None
Slapukas siunčiamas su visomis užklausomis, įskaitant kryžmines užklausas. To reikia, kad trečiosios šalies slapukai veiktų. Slapukas, nustatytas su SameSite=None, taip pat turi turėti Secure atributą.
Set-Cookie: tracking_id=xyz; SameSite=None; Secure
Bet koks slapukas, kuris turi veikti kryžminiame kontekste (įterpti valdikliai, trečiosios šalies autentifikavimas, sekimas tarp svetainių), turi naudoti SameSite=None. Tai vis aktualiau, kadangi naršyklės griežtina savo numatytąsias slapukų politikas.
Zombių slapukai ir superslapukai
Šiuos verta paminėti, nes jie atspindi bandymus apeiti privatumo kontrolės priemones:
- Zombių slapukai yra slapukai, kurie patys atsikuria po ištrynimo. Jie paprastai veikia saugodami tą patį identifikatorių keliuose saugojimo mechanizmuose (slapukuose, localStorage, IndexedDB, Flash LSO) ir naudodami tą, kuris išlieka, kitiems atkurti. Ši praktika plačiai laikoma apgaulinga ir dėl jos buvo imtasi vykdymo veiksmų.
- Superslapukai yra sekimo mechanizmai, veikiantys žemesniu nei įprastų slapukų lygmeniu — pavyzdžiui, IPT lygmens antraštės įterpimas (Verizon UIDH) arba HSTS pagrįstas pirštų atspaudų nuskaitymas. Naudotojams juos itin sunku valdyti ar ištrinti.
Tiek zombių slapukai, tiek superslapukai aiškiai nesuderinami su BDAR ir ePrivacy reikalavimais. Jų naudojimas pažeistų skaidrumo, teisėtumo ir duomenų minimizavimo principus.
Palyginimo lentelė
| Tipas | Galiojimo trukmė | Apimtis | Ar paprastai reikalingas sutikimas? | Pagrindiniai naudojimo atvejai |
|---|---|---|---|---|
| Seanso | Tik naršyklės seanso metu | Pirmosios šalies | Tik jei nebūtinas | Prisijungimo būsena, krepšelis, CSRF žetonai |
| Nuolatinis (pirmosios šalies) | Nuo dienų iki metų | Pirmosios šalies | Paprastai taip | Nustatymai, analitika, „prisiminti mane“ |
| Nuolatinis (trečiosios šalies) | Nuo dienų iki metų | Tarp svetainių | Beveik visada taip | Reklama, pakartotinis nukreipimas, socialiniai valdikliai |
| Secure | Įvairi | Tik HTTPS | Priklauso nuo paskirties | Bet koks jautrus slapukas |
| HttpOnly | Įvairi | Tik serverio pusėje | Priklauso nuo paskirties | Seanso ID, autentifikavimo žetonai |
| SameSite=Strict | Įvairi | Tik ta pati svetainė | Priklauso nuo paskirties | CSRF jautrios operacijos |
| SameSite=Lax | Įvairi | Ta pati svetainė + aukščiausio lygio naršymas | Priklauso nuo paskirties | Bendras seanso valdymas |
| SameSite=None | Įvairi | Visi kontekstai (reikalingas Secure) | Beveik visada taip | Trečiosios šalies įterpiniai, kryžminis autentifikavimas |
Ką tai reiškia atitikčiai
Slapuko tipas tiesiogiai veikia jūsų atitikties pareigas:
- Pirmosios šalies seanso slapukai, kurie yra griežtai būtini (prisijungimo seansai, pirkinių krepšeliai, CSRF žetonai), yra atleisti nuo sutikimo reikalavimų pagal ePrivacy 5 straipsnio 3 dalį.
- Pirmosios šalies nuolatiniams slapukams, skirtiems analitikai, nustatymams ar funkcionalumui, paprastai reikalingas sutikimas — nors kai kurios DAI leidžia ribotas išimtis pirmosios šalies analitikai tam tikromis sąlygomis.
- Bet kokiems trečiosios šalies slapukams beveik visada reikalingas aiškus išankstinis sutikimas. Yra labai nedaug teisėtų išimčių.
- Saugumo atributai (Secure, HttpOnly, SameSite) nekeičia sutikimo reikalavimų, tačiau jų naudojimas rodo gerą saugumo praktiką — o tai savaime yra BDAR reikalavimas.
Tiksliai žinoti, kuriuos slapukus nustato jūsų svetainė — ir kokio tipo kiekvienas iš jų yra — yra bet kokios atitikties programos pagrindas. Passiro skaitytuvas automatiškai identifikuoja ir klasifikuoja kiekvieną slapuką jūsų svetainėje, įskaitant trečiosios šalies slapukus, nustatomus įterptų scenarijų, apie kuriuos galbūt net nežinote.
Dabar, kai suprantame tipus, panagrinėkime, kaip slapukai organizuojami į sutikimo kategorijas — klasifikavimo sistemą, kuri lemia, kaip jie rodomi jūsų slapukų juostoje.
Ar jūsų svetainė atitinka slapukų taisykles?
Nemokamai nuskenuokite savo svetainę ir raskite visus slapukus per kelias minutes.
Nuskenuokite savo slapukus nemokamai