Tipi di cookie: una guida tecnica completa
Non tutti i cookie sono uguali. Il tipo di cookie determina per quanto tempo persiste, chi può leggerlo, con quale livello di sicurezza viaggia e — aspetto cruciale — se richiede o meno il consenso dell'utente. Comprendere queste distinzioni è fondamentale sia per la conformità sia per l'implementazione.
Cookie di sessione vs. cookie persistenti
La distinzione più fondamentale riguarda la durata di un cookie.
Cookie di sessione
Un cookie di sessione esiste solo per la durata di una sessione del browser. Non ha alcun attributo Expires o Max-Age. Quando l'utente chiude il browser, il cookie viene eliminato.
Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly
I cookie di sessione vengono generalmente utilizzati per:
- Mantenere lo stato di accesso durante una visita
- Il contenuto del carrello
- Token di protezione CSRF
- Dati di moduli a più passaggi
Poiché i cookie di sessione non persistono, sono generalmente meno invasivi dal punto di vista della privacy. Tuttavia, richiedono comunque il consenso se non sono strettamente necessari per il servizio richiesto dall'utente.
Cookie persistenti
Un cookie persistente ha una data di scadenza esplicita. Sopravvive al riavvio del browser e rimane sul dispositivo dell'utente finché non scade o viene eliminato manualmente.
Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure
Questo cookie persisterà per un anno (31.536.000 secondi). Gli usi più comuni includono:
- Funzionalità di accesso "ricordami"
- Preferenze di lingua e tema
- Identificatori di analisi (i cookie di Google Analytics persistono fino a 2 anni)
- Tracciamento pubblicitario (alcuni cookie pubblicitari persistono per 13 mesi o più)
I cookie persistenti sono soggetti a un maggiore controllo ai sensi delle normative sulla privacy. La CNIL (l'autorità francese per la protezione dei dati) ha raccomandato una durata massima dei cookie di 13 mesi, e anche il consenso deve essere rinnovato almeno ogni 13 mesi.
Cookie di prima parte vs. cookie di terze parti
Questa distinzione è centrale nel dibattito sulla privacy e incide direttamente sui requisiti di consenso.
Cookie di prima parte
Un cookie di prima parte viene impostato dal dominio che l'utente sta effettivamente visitando. Se visiti example.com, qualsiasi cookie impostato da example.com è un cookie di prima parte.
I cookie di prima parte vengono utilizzati per le funzionalità di base del sito web: sessioni, preferenze, analisi che il gestore del sito esegue autonomamente. Possono essere letti solo dal dominio che li ha impostati.
Esempio: visiti shop.example.com. Il server imposta un cookie chiamato session_id. Questo cookie viene inviato solo a shop.example.com e ai suoi sottodomini. Nessun altro sito web può accedervi.
Cookie di terze parti
Un cookie di terze parti viene impostato da un dominio diverso da quello che l'utente sta visitando. Quando example.com carica uno script pubblicitario da ads.tracker.com, e quello script imposta un cookie sotto il dominio tracker.com, si tratta di un cookie di terze parti.
È così che funziona il tracciamento cross-site. Il cookie di tracker.com viene inviato con ogni richiesta a tracker.com, indipendentemente da quale sito web abbia generato la richiesta. Se gli script di tracker.com sono incorporati in 10.000 siti web, possono osservare lo stesso utente su tutti i 10.000 siti.
I cookie di terze parti sono il bersaglio principale sia degli interventi normativi sia delle restrizioni a livello di browser:
- Safari blocca i cookie di terze parti per impostazione predefinita dal 2020 (ITP)
- Firefox blocca i tracker di terze parti noti per impostazione predefinita (ETP)
- Chrome sta abbandonando i cookie di terze parti con la sua iniziativa Privacy Sandbox
- Gli interventi normativi prendono di mira in modo preponderante i cookie di tracciamento di terze parti
Cookie Secure
Un cookie con l'attributo Secure viene inviato solo tramite connessioni HTTPS. Non verrà mai trasmesso su HTTP non crittografato.
Set-Cookie: auth_token=secret123; Secure
Questo impedisce a un attaccante man-in-the-middle di intercettare il cookie su una connessione non sicura. Qualsiasi cookie che contenga informazioni sensibili — identificatori di sessione, token di autenticazione, dati personali — dovrebbe sempre essere contrassegnato come Secure.
Dal punto di vista della conformità, non utilizzare il flag Secure sui cookie sensibili potrebbe essere considerato un mancato adempimento nell'implementare misure tecniche adeguate ai sensi dell'articolo 32 del GDPR (sicurezza del trattamento).
Cookie HttpOnly
Un cookie con l'attributo HttpOnly non è accessibile da JavaScript tramite document.cookie. Viene inviato solo con le richieste HTTP al server.
Set-Cookie: session_id=abc123; HttpOnly
Si tratta di una misura di sicurezza fondamentale. Gli attacchi di cross-site scripting (XSS) spesso tentano di rubare i cookie iniettando codice JavaScript che legge document.cookie. Il flag HttpOnly previene completamente questo vettore di attacco.
I cookie di sessione e i cookie di autenticazione dovrebbero quasi sempre essere HttpOnly. I cookie che devono essere letti dal JavaScript lato client (come i cookie di preferenza che influenzano l'interfaccia) non possono essere HttpOnly.
Cookie SameSite
L'attributo SameSite controlla se un cookie viene inviato con le richieste cross-site. È stato introdotto per mitigare gli attacchi di cross-site request forgery (CSRF) e per dare ai siti un maggiore controllo sul comportamento dei cookie cross-site.
SameSite=Strict
Il cookie viene inviato solo con le richieste che hanno origine dallo stesso sito. Se un utente clicca su un link presente su other.com che porta a your-site.com, il cookie non verrà inviato con quella richiesta iniziale.
Questa è l'impostazione più sicura, ma può compromettere funzionalità legittime. Ad esempio, se un utente clicca su un link al tuo sito da un'e-mail, il suo cookie di sessione non verrebbe inviato e risulterebbe disconnesso.
SameSite=Lax
Il cookie viene inviato con le navigazioni di primo livello (cliccando un link) ma non con le sottorichieste cross-site (caricamento di immagini, frame o esecuzione di richieste AJAX da un altro sito). Questa è l'impostazione predefinita nei browser moderni se non viene specificato alcun attributo SameSite.
Lax offre un ragionevole equilibrio tra sicurezza e usabilità. Impedisce ai siti di terze parti di attivare azioni autenticate sul tuo sito, consentendo comunque il normale funzionamento della navigazione tramite link.
SameSite=None
Il cookie viene inviato con tutte le richieste, incluse quelle cross-site. Questo è necessario affinché i cookie di terze parti funzionino. Un cookie impostato con SameSite=None deve avere anche l'attributo Secure.
Set-Cookie: tracking_id=xyz; SameSite=None; Secure
Qualsiasi cookie che deve funzionare in un contesto cross-site (widget incorporati, autenticazione di terze parti, tracciamento cross-site) deve utilizzare SameSite=None. Questo aspetto è sempre più rilevante man mano che i browser inaspriscono le loro policy predefinite sui cookie.
Zombie cookie e supercookie
Vale la pena menzionarli perché rappresentano tentativi di aggirare i controlli sulla privacy:
- Gli zombie cookie sono cookie che si ricreano dopo essere stati eliminati. Funzionano tipicamente memorizzando lo stesso identificatore in più meccanismi di archiviazione (cookie, localStorage, IndexedDB, LSO Flash) e utilizzando quello che sopravvive per rigenerare gli altri. Questa pratica è ampiamente considerata ingannevole ed è stata oggetto di interventi normativi.
- I supercookie sono meccanismi di tracciamento che operano a un livello inferiore rispetto ai normali cookie — come l'iniezione di header a livello di provider (l'UIDH di Verizon) o il fingerprinting basato su HSTS. Sono estremamente difficili da controllare o eliminare per gli utenti.
Sia gli zombie cookie sia i supercookie sono chiaramente incompatibili con i requisiti del GDPR e della normativa ePrivacy. Il loro utilizzo costituirebbe una violazione dei principi di trasparenza, liceità e minimizzazione dei dati.
Tabella comparativa
| Tipo | Durata | Ambito | Consenso generalmente richiesto? | Principali casi d'uso |
|---|---|---|---|---|
| Sessione | Solo sessione del browser | Prima parte | Solo se non essenziale | Stato di accesso, carrello, token CSRF |
| Persistente (prima parte) | Da giorni ad anni | Prima parte | Di solito sì | Preferenze, analisi, "ricordami" |
| Persistente (terze parti) | Da giorni ad anni | Cross-site | Quasi sempre sì | Pubblicità, retargeting, widget social |
| Secure | Variabile | Solo HTTPS | Dipende dallo scopo | Qualsiasi cookie sensibile |
| HttpOnly | Variabile | Solo lato server | Dipende dallo scopo | ID di sessione, token di autenticazione |
| SameSite=Strict | Variabile | Solo stesso sito | Dipende dallo scopo | Operazioni sensibili al CSRF |
| SameSite=Lax | Variabile | Stesso sito + navigazione di primo livello | Dipende dallo scopo | Gestione generale delle sessioni |
| SameSite=None | Variabile | Tutti i contesti (richiede Secure) | Quasi sempre sì | Contenuti incorporati di terze parti, autenticazione cross-site |
Cosa significa per la conformità
Il tipo di cookie incide direttamente sui tuoi obblighi di conformità:
- I cookie di sessione di prima parte strettamente necessari (sessioni di accesso, carrelli, token CSRF) sono esenti dai requisiti di consenso ai sensi dell'articolo 5(3) della normativa ePrivacy.
- I cookie persistenti di prima parte per analisi, preferenze o funzionalità richiedono generalmente il consenso — sebbene alcune autorità garanti consentano eccezioni limitate per le analisi di prima parte in condizioni specifiche.
- I cookie di terze parti di qualsiasi tipo richiedono quasi sempre un consenso preventivo esplicito. Esistono pochissime eccezioni legittime.
- Gli attributi di sicurezza (Secure, HttpOnly, SameSite) non modificano i requisiti di consenso, ma il loro utilizzo dimostra una buona pratica di sicurezza — che è di per sé un requisito del GDPR.
Sapere esattamente quali cookie imposta il tuo sito web — e di che tipo è ciascuno di essi — è il fondamento di qualsiasi programma di conformità. Lo scanner di Passiro identifica e classifica automaticamente ogni cookie presente sul tuo sito web, inclusi i cookie di terze parti impostati da script incorporati di cui potresti non essere nemmeno consapevole.
Ora che comprendiamo i tipi, vediamo come i cookie vengono organizzati in categorie di consenso — il sistema di classificazione che determina come appaiono nel tuo banner dei cookie.
Il tuo sito web è conforme alle normative sui cookie?
Scansiona il tuo sito web gratuitamente e trova tutti i cookie in pochi minuti.
Scansiona i tuoi cookie gratis