Skip to main content

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:

  1. 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.
  2. 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.
  3. Piškotki tretjih oseb kakršne koli vrste skoraj vedno zahtevajo izrecno predhodno privolitev. Legitimnih izjem je zelo malo.
  4. 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