Vai al contenuto principale

[Medium] 📄 cookie, sessionStorage, localStorage

Confronto

ProprietàcookiesessionStoragelocalStorage
DurataEliminato alla chiusura della pagina a meno che non sia impostata una scadenza (Expires) o una durata massima (Max-Age)Eliminato alla chiusura della tabPersiste fino alla rimozione manuale
Richiesta HTTPSì, inviato al server tramite l'header CookieNoNo
Limite di archiviazione4KB5MB5MB
Ambito di accessoTra finestre/tabSolo nella stessa tabTra finestre/tab
SicurezzaJavaScript non può accedere ai cookie HttpOnlyNessuna protezione speciale di defaultNessuna protezione speciale di default

Terminologia

Cosa sono i cookie persistenti?

Un cookie persistente (chiamato anche cookie permanente) memorizza i dati nel browser dell'utente per un lungo periodo. Come menzionato sopra, questo viene fatto impostando un valore di scadenza (Expires o Max-Age).

Esperienza pratica

1. Verifica di sicurezza

Alcuni progetti legacy avevano una sicurezza debole e frequenti furti di account, il che aumentava significativamente i costi operativi. Ho usato prima Fingerprint (la versione community è ufficialmente descritta con circa il 60% di accuratezza, e la versione a pagamento include 20.000 richieste mensili gratuite). Ogni utente che effettuava il login veniva identificato come un ID visita unico basato sui parametri del dispositivo e della geolocalizzazione. Poi, sfruttando il fatto che i cookie vengono inviati con ogni richiesta HTTP, il backend poteva verificare se l'utente aveva cambiato dispositivo o mostrava uno spostamento sospetto della posizione. Se veniva rilevata un'anomalia, il flusso di login forzava la verifica OTP (email o SMS, a seconda della policy aziendale).

2. URL con codice referral

Quando si gestisce un sito web di prodotto, il marketing di affiliazione è comune: ogni promotore ottiene un URL dedicato per l'attribuzione. Per garantire che gli utenti acquisiti tramite quel traffico fossero ancora attribuiti al promotore, ho implementato una soluzione con l'attributo expires del cookie. Una volta che un utente entrava tramite un link di referral, il codice referral rimaneva valido per 24 ore (la finestra temporale può essere configurata dalle operazioni). Anche se l'utente rimuoveva i parametri di referral dall'URL, la registrazione leggeva comunque il valore dal cookie fino alla scadenza automatica.

localStorage

1. Memorizzazione delle preferenze utente

  • Comunemente usato per memorizzare le preferenze utente come la modalità scura e il locale i18n.
  • Può anche memorizzare i token di login.