[Medium] ๐ cookie, sessionStorage, localStorage
Confrontoโ
| Proprietร | cookie | sessionStorage | localStorage |
|---|---|---|---|
| Durata | Eliminato alla chiusura della pagina a meno che non sia impostata una scadenza (Expires) o una durata massima (Max-Age) | Eliminato alla chiusura della tab | Persiste fino alla rimozione manuale |
| Richiesta HTTP | Sรฌ, inviato al server tramite l'header Cookie | No | No |
| Limite di archiviazione | 4KB | 5MB | 5MB |
| Ambito di accesso | Tra finestre/tab | Solo nella stessa tab | Tra finestre/tab |
| Sicurezza | JavaScript non puรฒ accedere ai cookie HttpOnly | Nessuna protezione speciale di default | Nessuna 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โ
cookieโ
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.