Tipuri de cookie-uri: un ghid tehnic complet
Nu toate cookie-urile sunt la fel. Tipul unui cookie determină cât timp persistă, cine îl poate citi, cât de sigur circulă și — foarte important — dacă necesită consimțământul utilizatorului. Înțelegerea acestor distincții este esențială atât pentru conformitate, cât și pentru implementare.
Cookie-uri de sesiune vs. cookie-uri persistente
Cea mai fundamentală distincție este durata de viață a unui cookie.
Cookie-uri de sesiune
Un cookie de sesiune există doar pe durata unei sesiuni de navigare. Nu are atributul Expires sau Max-Age. Când utilizatorul închide browserul, cookie-ul este șters.
Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly
Cookie-urile de sesiune sunt utilizate de obicei pentru:
- Menținerea stării de autentificare pe durata unei vizite
- Conținutul coșului de cumpărături
- Token-uri de protecție CSRF
- Date din formulare cu mai mulți pași
Deoarece cookie-urile de sesiune nu persistă, ele sunt în general mai puțin invazive din perspectiva confidențialității. Totuși, necesită consimțământ dacă nu sunt strict necesare pentru serviciul solicitat de utilizator.
Cookie-uri persistente
Un cookie persistent are o dată de expirare explicită. Supraviețuiește repornirilor browserului și rămâne pe dispozitivul utilizatorului până când expiră sau este șters manual.
Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure
Acest cookie va persista timp de un an (31.536.000 de secunde). Utilizările frecvente includ:
- Funcționalitatea „ține-mă minte” pentru autentificare
- Preferințe de limbă și temă
- Identificatori de analiză (cookie-urile Google Analytics persistă până la 2 ani)
- Urmărire publicitară (unele cookie-uri de reclamă persistă 13 luni sau mai mult)
Cookie-urile persistente sunt supuse unui control mai atent conform reglementărilor privind confidențialitatea. CNIL (autoritatea franceză de protecție a datelor) a recomandat o durată maximă de viață a cookie-urilor de 13 luni, iar consimțământul trebuie reînnoit, de asemenea, cel puțin o dată la 13 luni.
Cookie-uri proprii (first-party) vs. cookie-uri terțe (third-party)
Această distincție este centrală în dezbaterea privind confidențialitatea și afectează direct cerințele de consimțământ.
Cookie-uri proprii (first-party)
Un cookie propriu este setat de domeniul pe care utilizatorul îl vizitează efectiv. Dacă accesați example.com, orice cookie setat de example.com este un cookie propriu.
Cookie-urile proprii sunt utilizate pentru funcționalitățile de bază ale site-ului: sesiuni, preferințe, analize pe care operatorul site-ului le rulează el însuși. Pot fi citite doar de domeniul care le-a setat.
Exemplu: Accesați shop.example.com. Serverul setează un cookie numit session_id. Acest cookie este trimis doar către shop.example.com și subdomeniile sale. Niciun alt site web nu îl poate accesa.
Cookie-uri terțe (third-party)
Un cookie terț este setat de un alt domeniu decât cel pe care îl vizitează utilizatorul. Când example.com încarcă un script publicitar de la ads.tracker.com, iar acel script setează un cookie sub domeniul tracker.com, acesta este un cookie terț.
Așa funcționează urmărirea între site-uri. Cookie-ul tracker.com este trimis la fiecare cerere către tracker.com, indiferent de site-ul care a declanșat cererea. Dacă scripturile tracker.com sunt integrate pe 10.000 de site-uri, ele pot observa același utilizator pe toate cele 10.000 de site-uri.
Cookie-urile terțe sunt principala țintă atât a aplicării reglementărilor, cât și a restricțiilor la nivel de browser:
- Safari blochează implicit cookie-urile terțe încă din 2020 (ITP)
- Firefox blochează implicit instrumentele de urmărire terțe cunoscute (ETP)
- Chrome renunță treptat la cookie-urile terțe prin inițiativa sa Privacy Sandbox
- Măsurile de aplicare a reglementărilor vizează în mod covârșitor cookie-urile terțe de urmărire
Cookie-uri securizate (Secure)
Un cookie cu atributul Secure este trimis doar prin conexiuni HTTPS. Nu va fi niciodată transmis printr-o conexiune HTTP necriptată.
Set-Cookie: auth_token=secret123; Secure
Acest lucru împiedică un atacator de tip man-in-the-middle să intercepteze cookie-ul pe o conexiune nesigură. Orice cookie care conține informații sensibile — identificatori de sesiune, token-uri de autentificare, date personale — ar trebui întotdeauna marcat ca Secure.
Din perspectiva conformității, neutilizarea flagului Secure pentru cookie-urile sensibile ar putea fi considerată o neimplementare a măsurilor tehnice adecvate conform Articolului 32 din GDPR (securitatea prelucrării).
Cookie-uri HttpOnly
Un cookie cu atributul HttpOnly nu poate fi accesat de JavaScript prin document.cookie. Este trimis doar cu cererile HTTP către server.
Set-Cookie: session_id=abc123; HttpOnly
Aceasta este o măsură de securitate esențială. Atacurile de tip cross-site scripting (XSS) încearcă adesea să fure cookie-uri prin injectarea de JavaScript care citește document.cookie. Flagul HttpOnly blochează complet acest vector.
Cookie-urile de sesiune și cookie-urile de autentificare ar trebui să fie aproape întotdeauna HttpOnly. Cookie-urile care trebuie citite de JavaScript-ul din partea clientului (cum ar fi cookie-urile de preferințe care afectează interfața) nu pot fi HttpOnly.
Cookie-uri SameSite
Atributul SameSite controlează dacă un cookie este trimis odată cu cererile între site-uri. A fost introdus pentru a atenua atacurile de tip cross-site request forgery (CSRF) și pentru a oferi site-urilor un control mai mare asupra comportamentului cookie-urilor între site-uri.
SameSite=Strict
Cookie-ul este trimis doar cu cererile care provin de la același site. Dacă un utilizator dă clic pe un link de pe other.com care duce la your-site.com, cookie-ul nu va fi trimis cu acea cerere inițială.
Aceasta este cea mai sigură setare, dar poate afecta funcționalitatea legitimă. De exemplu, dacă un utilizator dă clic pe un link către site-ul dvs. dintr-un e-mail, cookie-ul său de sesiune nu ar fi trimis, iar el ar părea deconectat.
SameSite=Lax
Cookie-ul este trimis cu navigările la nivel superior (clic pe un link), dar nu cu subcererile între site-uri (încărcarea imaginilor, a cadrelor sau efectuarea de cereri AJAX de pe alt site). Aceasta este setarea implicită în browserele moderne dacă nu se specifică niciun atribut SameSite.
Lax oferă un echilibru rezonabil între securitate și utilizabilitate. Împiedică site-urile terțe să declanșeze acțiuni autentificate pe site-ul dvs., permițând în același timp funcționarea normală a navigării prin linkuri.
SameSite=None
Cookie-ul este trimis cu toate cererile, inclusiv cu cele între site-uri. Acest lucru este necesar pentru ca cookie-urile terțe să funcționeze. Un cookie setat cu SameSite=None trebuie să aibă și atributul Secure.
Set-Cookie: tracking_id=xyz; SameSite=None; Secure
Orice cookie care trebuie să funcționeze într-un context între site-uri (widget-uri integrate, autentificare terță, urmărire între site-uri) trebuie să utilizeze SameSite=None. Acest lucru devine tot mai relevant pe măsură ce browserele își înăspresc politicile implicite privind cookie-urile.
Cookie-uri zombie și supercookie-uri
Acestea merită menționate deoarece reprezintă încercări de a eluda controalele privind confidențialitatea:
- Cookie-urile zombie sunt cookie-uri care se recreează după ce sunt șterse. De obicei, funcționează stocând același identificator în mai multe mecanisme de stocare (cookie-uri, localStorage, IndexedDB, Flash LSO) și utilizând oricare supraviețuiește pentru a le regenera pe celelalte. Această practică este considerată pe scară largă înșelătoare și a făcut obiectul unor măsuri de aplicare.
- Supercookie-urile sunt mecanisme de urmărire care operează la un nivel sub cel al cookie-urilor normale — cum ar fi injectarea de anteturi la nivel de furnizor de internet (UIDH-ul Verizon) sau amprentarea bazată pe HSTS. Sunt extrem de dificil de controlat sau de șters de către utilizatori.
Atât cookie-urile zombie, cât și supercookie-urile sunt clar incompatibile cu cerințele GDPR și ePrivacy. Utilizarea lor ar constitui o încălcare a principiilor transparenței, legalității și minimizării datelor.
Tabel comparativ
| Tip | Durată de viață | Domeniu de acțiune | Necesită de obicei consimțământ? | Cazuri de utilizare principale |
|---|---|---|---|---|
| Sesiune | Doar pe durata sesiunii de navigare | Propriu (first-party) | Doar dacă nu este esențial | Stare de autentificare, coș, token-uri CSRF |
| Persistent (propriu) | De la zile la ani | Propriu (first-party) | De obicei da | Preferințe, analize, „ține-mă minte” |
| Persistent (terț) | De la zile la ani | Între site-uri | Aproape întotdeauna da | Publicitate, retargeting, widget-uri sociale |
| Secure | Variabilă | Doar HTTPS | Depinde de scop | Orice cookie sensibil |
| HttpOnly | Variabilă | Doar pe partea de server | Depinde de scop | ID-uri de sesiune, token-uri de autentificare |
| SameSite=Strict | Variabilă | Doar același site | Depinde de scop | Operațiuni sensibile la CSRF |
| SameSite=Lax | Variabilă | Același site + navigare la nivel superior | Depinde de scop | Gestionarea generală a sesiunilor |
| SameSite=None | Variabilă | Toate contextele (necesită Secure) | Aproape întotdeauna da | Integrări terțe, autentificare între site-uri |
Ce înseamnă acest lucru pentru conformitate
Tipul de cookie afectează direct obligațiile dvs. de conformitate:
- Cookie-urile de sesiune proprii care sunt strict necesare (sesiuni de autentificare, coșuri de cumpărături, token-uri CSRF) sunt scutite de cerințele de consimțământ conform Articolului 5(3) din ePrivacy.
- Cookie-urile persistente proprii pentru analize, preferințe sau funcționalitate necesită în general consimțământ — deși unele autorități de protecție a datelor permit excepții limitate pentru analizele proprii în anumite condiții.
- Cookie-urile terțe de orice fel necesită aproape întotdeauna consimțământ explicit prealabil. Există foarte puține excepții legitime.
- Atributele de securitate (Secure, HttpOnly, SameSite) nu modifică cerințele de consimțământ, dar utilizarea lor demonstrează bune practici de securitate — ceea ce reprezintă, în sine, o cerință GDPR.
Să știți exact ce cookie-uri setează site-ul dvs. — și de ce tip este fiecare — reprezintă fundamentul oricărui program de conformitate. Scannerul Passiro identifică și clasifică automat fiecare cookie de pe site-ul dvs., inclusiv cookie-urile terțe setate de scripturi integrate de care poate nici nu sunteți conștient.
Acum că înțelegem tipurile, să vedem cum sunt organizate cookie-urile în categorii de consimțământ — sistemul de clasificare care determină modul în care apar în bannerul dvs. de cookie-uri.
Site-ul tău respectă regulile privind cookie-urile?
Scanează-ți site-ul gratuit și găsește toate cookie-urile în câteva minute.
Scanează-ți cookie-urile gratuit