Vrste piškotkov: celovit tehnični vodnik
Vsi piškotki niso enaki. Vrsta piškotka določa, kako dolgo se ohranja, kdo ga lahko bere, kako varno potuje in – kar je ključnega pomena – ali zahteva privolitev uporabnika. Razumevanje teh razlik je bistveno tako za skladnost kot za izvedbo.
Sejni piškotki v primerjavi s trajnimi piškotki
Najosnovnejša razlika je v tem, kako dolgo piškotek traja.
Sejni piškotki
Sejni piškotek obstaja le za čas trajanja brskalne seje. Nima atributa Expires ali Max-Age. Ko uporabnik zapre brskalnik, se piškotek izbriše.
Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly
Sejni piškotki se običajno uporabljajo za:
- ohranjanje stanja prijave med obiskom;
- vsebino nakupovalne košarice;
- žetone za zaščito pred CSRF;
- podatke iz večstopenjskih obrazcev.
Ker se sejni piškotki ne ohranjajo, so z vidika zasebnosti na splošno manj vsiljivi. Kljub temu zahtevajo privolitev, če niso nujno potrebni za storitev, ki jo je uporabnik zahteval.
Trajni piškotki
Trajni piškotek ima izrecno določen datum poteka. Preživi ponovni zagon brskalnika in ostane na napravi uporabnika, dokler ne poteče ali dokler ga ne izbriše ročno.
Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure
Ta piškotek se bo ohranil eno leto (31.536.000 sekund). Pogoste rabe vključujejo:
- funkcijo »zapomni si me« pri prijavi;
- nastavitve jezika in teme;
- identifikatorje za analitiko (piškotki Google Analytics se ohranjajo do 2 leti);
- sledenje za oglaševanje (nekateri oglaševalski piškotki se ohranjajo 13 mesecev ali dlje).
Trajni piškotki so pod strožjim nadzorom v skladu s predpisi o zasebnosti. CNIL (francoski organ za varstvo podatkov) je priporočil najdaljšo življenjsko dobo piškotka 13 mesecev, prav tako pa je treba privolitev obnoviti vsaj vsakih 13 mesecev.
Lastni piškotki v primerjavi s piškotki tretjih oseb
Ta razlika je osrednjega pomena v razpravi o zasebnosti in neposredno vpliva na zahteve glede privolitve.
Lastni piškotki
Lastni piškotek nastavi domena, ki jo uporabnik dejansko obiskuje. Če obiščete example.com, je vsak piškotek, ki ga nastavi example.com, lastni piškotek.
Lastni piškotki se uporabljajo za osnovno delovanje spletnega mesta: seje, nastavitve, analitiko, ki jo upravlja upravljavec spletnega mesta sam. Bere jih lahko le domena, ki jih je nastavila.
Primer: Obiščete shop.example.com. Strežnik nastavi piškotek z imenom session_id. Ta piškotek se pošlje samo domeni shop.example.com in njenim poddomenam. Nobeno drugo spletno mesto do njega ne more dostopati.
Piškotki tretjih oseb
Piškotek tretje osebe nastavi domena, ki ni tista, ki jo uporabnik obiskuje. Ko example.com naloži oglaševalsko skripto z domene ads.tracker.com in ta skripta nastavi piškotek pod domeno tracker.com, gre za piškotek tretje osebe.
Tako deluje sledenje med spletnimi mesti. Piškotek tracker.com se pošlje z vsako zahtevo na tracker.com, ne glede na to, s katerega spletnega mesta je zahteva sprožena. Če so skripte domene tracker.com vgrajene na 10.000 spletnih mestih, lahko opazujejo istega uporabnika na vseh 10.000 mestih.
Piškotki tretjih oseb so glavna tarča tako regulativnega uveljavljanja kot omejitev na ravni brskalnikov:
- Safari privzeto blokira piškotke tretjih oseb od leta 2020 (ITP);
- Firefox privzeto blokira znane sledilce tretjih oseb (ETP);
- Chrome se s pobudo Privacy Sandbox postopoma odmika od piškotkov tretjih oseb;
- regulativni ukrepi uveljavljanja se v veliki večini osredotočajo na sledilne piškotke tretjih oseb.
Varni piškotki (Secure)
Piškotek z atributom Secure se pošilja le prek povezav HTTPS. Nikoli se ne prenaša prek nešifriranega protokola HTTP.
Set-Cookie: auth_token=secret123; Secure
To prepreči napadalcu tipa »človek vmes« (man in the middle), da bi piškotek prestregel prek nezaščitene povezave. Vsak piškotek, ki vsebuje občutljive informacije – identifikatorje seje, žetone za overjanje, osebne podatke – mora biti vedno označen kot Secure.
Z vidika skladnosti bi lahko neuporaba oznake Secure pri občutljivih piškotkih pomenila neizvajanje ustreznih tehničnih ukrepov v skladu s členom 32 GDPR (varnost obdelave).
Piškotki HttpOnly
Do piškotka z atributom HttpOnly ni mogoče dostopati prek JavaScripta z document.cookie. Pošilja se le s zahtevami HTTP na strežnik.
Set-Cookie: session_id=abc123; HttpOnly
To je ključni varnostni ukrep. Napadi z medmestnim skriptanjem (XSS) pogosto poskušajo ukrasti piškotke z vbrizgavanjem JavaScripta, ki prebere document.cookie. Oznaka HttpOnly ta vektor napada v celoti prepreči.
Sejni piškotki in piškotki za overjanje bi skoraj vedno morali imeti oznako HttpOnly. Piškotki, ki jih mora prebrati JavaScript na strani odjemalca (na primer piškotki z nastavitvami, ki vplivajo na uporabniški vmesnik), ne morejo imeti oznake HttpOnly.
Piškotki SameSite
Atribut SameSite nadzoruje, ali se piškotek pošilja z medmestnimi zahtevami. Uveden je bil za ublažitev napadov s ponarejanjem zahtev med spletnimi mesti (CSRF) in za to, da spletnim mestom omogoči večji nadzor nad ravnanjem s piškotki med mesti.
SameSite=Strict
Piškotek se pošlje le z zahtevami, ki izvirajo z istega spletnega mesta. Če uporabnik na other.com klikne povezavo, ki vodi na your-site.com, se piškotek s to začetno zahtevo ne bo poslal.
To je najvarnejša nastavitev, vendar lahko okvari legitimno delovanje. Če na primer uporabnik iz e-pošte klikne povezavo do vašega spletnega mesta, se njegov sejni piškotek ne bo poslal in videti bo, kot da je odjavljen.
SameSite=Lax
Piškotek se pošlje z navigacijami na najvišji ravni (klik na povezavo), ne pa z medmestnimi podzahtevami (nalaganje slik, okvirjev ali izvajanje zahtev AJAX z drugega mesta). To je privzeta nastavitev v sodobnih brskalnikih, če atribut SameSite ni določen.
Lax zagotavlja razumno ravnovesje med varnostjo in uporabnostjo. Preprečuje, da bi mesta tretjih oseb sprožila overjena dejanja na vašem mestu, hkrati pa omogoča običajno navigacijo po povezavah.
SameSite=None
Piškotek se pošlje z vsemi zahtevami, vključno z medmestnimi. To je potrebno za delovanje piškotkov tretjih oseb. Piškotek, nastavljen z SameSite=None, mora imeti tudi atribut Secure.
Set-Cookie: tracking_id=xyz; SameSite=None; Secure
Vsak piškotek, ki mora delovati v medmestnem kontekstu (vgrajeni gradniki, overjanje tretjih oseb, medmestno sledenje), mora uporabljati SameSite=None. To postaja vse bolj pomembno, ko brskalniki zaostrujejo svoje privzete politike glede piškotkov.
Zombijevski piškotki in superpiškotki
Vredni so omembe, ker predstavljajo poskuse obhoda nadzora nad zasebnostjo:
- Zombijevski piškotki so piškotki, ki se po izbrisu ponovno ustvarijo. Običajno delujejo tako, da isti identifikator shranijo v več mehanizmov shranjevanja (piškotki, localStorage, IndexedDB, Flash LSO) in uporabijo tistega, ki preživi, za obnovitev drugih. Ta praksa velja za zavajajočo in je bila predmet ukrepov uveljavljanja.
- Superpiškotki so mehanizmi za sledenje, ki delujejo na ravni pod običajnimi piškotki – kot je vbrizgavanje glav na ravni ponudnika internetnih storitev (Verizonov UIDH) ali prstni odtis na podlagi HSTS. Uporabniki jih izjemno težko nadzorujejo ali izbrišejo.
Tako zombijevski piškotki kot superpiškotki so jasno nezdružljivi z zahtevami GDPR in ePrivacy. Njihova uporaba bi pomenila kršitev načel preglednosti, zakonitosti in najmanjšega obsega podatkov.
Primerjalna tabela
| Vrsta | Življenjska doba | Obseg | Ali je običajno potrebna privolitev? | Ključne rabe |
|---|---|---|---|---|
| Sejni | Samo brskalna seja | Lastni | Le če ni bistven | Stanje prijave, košarica, žetoni CSRF |
| Trajni (lastni) | Od dni do let | Lastni | Običajno da | Nastavitve, analitika, »zapomni si me« |
| Trajni (tretje osebe) | Od dni do let | Medmestni | Skoraj vedno da | Oglaševanje, ponovno ciljanje, družbeni gradniki |
| Secure | Različno | Samo HTTPS | Odvisno od namena | Vsak občutljiv piškotek |
| HttpOnly | Različno | Samo na strani strežnika | Odvisno od namena | Identifikatorji seje, žetoni za overjanje |
| SameSite=Strict | Različno | Samo isto mesto | Odvisno od namena | Operacije, občutljive na CSRF |
| SameSite=Lax | Različno | Isto mesto + navigacija na najvišji ravni | Odvisno od namena | Splošno upravljanje sej |
| SameSite=None | Različno | Vsi konteksti (zahteva Secure) | Skoraj vedno da | Vgradnje tretjih oseb, medmestno overjanje |
Kaj to pomeni za skladnost
Vrsta piškotka neposredno vpliva na vaše obveznosti glede skladnosti:
- Lastni sejni piškotki, ki so nujno potrebni (prijavne seje, nakupovalne košarice, žetoni CSRF), so izvzeti iz zahtev glede privolitve v skladu s členom 5(3) ePrivacy.
- Lastni trajni piškotki za analitiko, nastavitve ali funkcionalnost na splošno zahtevajo privolitev – čeprav nekateri organi za varstvo podatkov pod določenimi pogoji dopuščajo omejene izjeme za lastno analitiko.
- Piškotki tretjih oseb kakršne koli vrste skoraj vedno zahtevajo izrecno predhodno privolitev. Legitimnih izjem je zelo malo.
- Varnostni atributi (Secure, HttpOnly, SameSite) ne spremenijo zahtev glede privolitve, vendar njihova uporaba izkazuje dobro varnostno prakso – kar je tudi sama po sebi zahteva GDPR.
Poznavanje natančno tega, katere piškotke nastavlja vaše spletno mesto – in kakšne vrste je vsak od njih – je temelj vsakega programa skladnosti. Passirov skener samodejno prepozna in razvrsti vsak piškotek na vašem spletnem mestu, vključno s piškotki tretjih oseb, ki jih nastavijo vgrajene skripte, za katere morda niti ne veste.
Zdaj, ko razumemo vrste, si oglejmo, kako so piškotki organizirani v kategorije privolitve – sistem razvrščanja, ki določa, kako se prikažejo v vašem obvestilu o piškotkih.
Je vaše spletno mesto skladno s pravili o piškotkih?
Brezplačno skenirajte svoje spletno mesto in odkrijte vse piškotke v nekaj minutah.
Brezplačno skenirajte piškotke