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.