è necessario memorizzare il user_id
ed emettere un token casuale in aggiunta alla password dell'utente. Usa il token nel cookie e cambia il token quando la password cambia. In questo modo, se l'utente cambia la propria password, il cookie verrà invalidato.
Questo è importante se il cookie è stato dirottato. Sarà invalidato se l'utente rileva il dirottamento e inoltre, poiché il token non è correlato alla password, il dirottatore non sarà in grado di derivare e quindi modificare la password dell'account dell'utente e "possedere" l'account (presupponendo che sia richiesta la password esistente prima di cambiare la password, il dirottatore non possiede l'account e-mail in modo che non possano usare "Hai dimenticato la mia password", ecc.).
fare attenzione che i gettoni non sono facili da indovinare (vale a dire che dovrebbe consistere di dati del tutto casuali, come da un CRNG).
Se si desidera fare un ulteriore passo avanti, è possibile crittografare il cookie prima di inviarlo e decrittarlo al momento del ricevimento. Inoltre, non dare per scontato che un dirottatore non conosca la chiave di crittografia utilizzata, quindi convalidare il contenuto del cookie dopo la decrittografia.
Ma tutto ciò detto, preferisce utilizzare la gestione persistente delle sessioni di una libreria invece di eseguire il rollover.
fonte
2011-08-27 12:21:19
io non sono sicuro al 100% ciò che lo stato delle cose in PHP è fino ad oggi, ma in genere la pratica migliore è quella di utilizzare un quadro ben considerato esistente invece di rotolare il proprio. –
io uso il framework Codeigniter – sbaaaang
Il codeigniter ha un modulo di autenticazione? Modifica - Sembra un sì: http://stackoverflow.com/questions/346980/what-codeigniter-authentication-library-is-best –