Qual è la cosa migliore da memorizzare in un cookie per mantenere uno stato di accesso persistente?Cosa dovrebbe essere memorizzato in un cookie per un sistema di login?
Ho visto molti siti Web (e tutorial per principianti!) Che semplicemente memorizzano qualcosa come validUser = 1 in un cookie. Chiaramente potrei spoofarlo e il sito web penserebbe che fossi un utente valido.
Se il nome utente è memorizzato nel cookie, potrei mascherarmi come qualsiasi utente inviando un cookie con il suo nome utente nella mia richiesta.
Quindi se si memorizza il nome utente e password nel cookie, quindi devo conoscere il nome utente e la password per accedere. Effettivamente l'utente è loggato automaticamente - è come avere la password salvata dal suo browser. Invece di dover digitare le credenziali nelle caselle ogni volta, il browser le invia automaticamente con ogni richiesta di pagina.
Ma questa è ancora una cattiva idea? Memorizzare una password in testo semplice non è un'idea brillante, ma è così che verrebbe inviata nei dati POST al momento del login. Inoltre, potrebbe essere memorizzata come hash. Ma ancora non mi sento a mio agio.
Forse i cookie non devono essere utilizzati per memorizzare nulla tranne un ID di sessione e i dati dell'utente sono memorizzati sul server stesso. Questa è forse una posizione più sicura, presumendo che il server non sia condiviso.
Guardando alcuni software open source come il software del forum, usano un sistema più complicato, ma non riuscivo a capire esattamente cosa stesse facendo sfogliando il codice.
Qual è la "migliore pratica" standard?
Quindi è semplice come memorizzare un ID utente nella sessione, quindi? Questo è sicuro e non è necessario memorizzare ulteriori informazioni su un particolare accesso nel database? (ad es. IP), e per cambiare tutte le sessioni/dati ogni volta che si rivisitano, come ho visto fare questi script di grandi dimensioni? – Rob
Dovresti riutilizzare un framework di autenticazione esistente quando possibile, perché, in realtà, è complesso. Ad esempio, dai un'occhiata a https://github.com/delight-im/PHP-Auth – caw