2009-03-27 10 views
7

Se un utente accede al sito e dice "ricordami", otteniamo l'identificatore univoco per l'utente, crittografalo con RijndaelManaged con una dimensione di 256 e posto questo in un cookie httponly con una scadenza impostata di dire .. 120 giorni, la scadenza viene aggiornata ogni richiesta riuscita al server.Si tratta di un modo ragionevole per implementare la funzionalità "ricordami"

Opzionalmente si genera il vettore di inizializzazione basato sull'agente utente e parte dell'indirizzo ipv4 (gli ultimi due ottetti).

theres Ovviamente nessun sistema reale di scadenza incorporata in questo, l'utente potrebbe tecnicamente utilizzare questa chiave crittografata per sempre (dato non cambiamo la chiave lato server) ..

ho considerato il fatto che per consentire questa funzione Devo consentire all'utente di essere in grado di ignorare il login e darmi il proprio ID univoco (che è un guid), ho capito che il guid solo era davvero difficile indovinare un vero guidatore degli utenti, ma avrebbe lasciato il sito aperto all'attacco di botnots che generano guids (non ho idea di quanto sia realistico per loro trovare un legittimo guidatore) .. quindi questo è il motivo per cui c'è crittografia dove il server conosce la chiave di crittografia, e facoltativamente l'iv è specifico per il browser e la parte ip.

Devo prendere in considerazione un approccio diverso in cui il server emette ticket associati a un utente e questi biglietti avrebbero una data di scadenza nota, quindi il server mantiene il controllo della scadenza? dovrei davvero preoccuparmi della scadenza? ricordati di me mi ricordi dopotutto?

In attesa di essere umiliato;), Saluti.

+0

possibile duplicato di [Qual è il modo migliore per implementare "ricordami" per un sito Web?] (Http: // StackOverflow.it/questions/244882/what-is-the-best-way-to-implement-remember-me-for-a-website) – user

risposta

6

Very similar question.

La soluzione alla tua domanda è in questo blog post

"Persistent Accesso Cookie migliore Practice", descrive un approccio relativamente sicuro per l'attuazione del familiare "Ricordami" opzione per i siti web . In questo articolo, propongo un miglioramento che conserva tutti i vantaggi di questo approccio, ma anche consente di rilevare quando un cookie di accesso persistente è stato rubato e utilizzato da un utente malintenzionato.

Come Jacco dice nei commenti: per nelle informazioni approfondite sui autenticazione sicura leggere The Definitive Guide To Website Authentication.

+0

Super, avrei dovuto cercare meglio;) grazie. – meandmycode

+0

Dovresti leggere il post originale: http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/. – Jacco

+0

La versione 'migliorata' non offre miglioramenti. Vedi anche: http://stackoverflow.com/questions/549/the-definitive-guide-to-website-authentication-beta#477579 C'è anche una spiegazione del problema da qualche parte nei commenti sulla versione 'migliorata'. – Jacco

0

Hai considerato qualcosa come Open Id? Come SO usa.

+0

Ciao Josh, in realtà il sito potrebbe utilizzare OpenID in futuro, ma ricorda che la funzionalità ha ancora bisogno per ricordare chi affermi di essere secondo il nostro database di utenti. – meandmycode

0

Quanto è importante l'informazione che viene ricordata? Se non sarà qualcosa di molto personale o importante, basta inserire un GUID nel cookie.

L'inclusione dell'indirizzo IP nel calcolo è probabilmente una cattiva idea, in quanto renderebbe istantaneamente dimenticati gli utenti che utilizzano reti pubbliche.

Utilizzare la forza bruta per trovare GUID è ridicolo, in quanto vi sono 2 possibilità .

+0

Indirizzo dettagli potenziale e cronologia degli ordini, anche sì la cosa ip è opzionale dato i problemi del proxy con alcune reti. – meandmycode

Problemi correlati