2009-07-24 10 views
5

Sto cercando alcune indicazioni sull'implementazione di un servizio di recupero password in ASP.NET che invii un link all'utente che li invia a una pagina di reimpostazione della password in quanto non desidero inviare per e-mail password esistenti o rigenerate in chiaro.
Ho visto alcuni suggerimenti sull'utilizzo dell'ID membro come parametro di querystring, tuttavia ritengo che questo possa essere un abuso dato che la tabella di appartenenza personalizzata su cui sto lavorando usa gli int integer di guid come campo id.
Sto pensando che è necessario creare una tabella personalizzata contenente un ID (lungo) univoco insieme all'ID membro che viene popolato ogni volta che un utente richiede il recupero della password. Questo ID verrà quindi passato come parte della Querystring nel link alla pagina di reimpostazione della password. Quando un utente fa clic sul collegamento, la pagina cerca l'id nella tabella personalizzata e ottiene l'ID membro da lì consentendo all'utente di modificare la password rispetto a tale appartenenza.
Questo sembra un approccio valido; è eccessivo? Qualsiasi altro suggerimento sarebbe molto apprezzato.Come implementare un collegamento per il recupero della password in ASP.NET?

risposta

3

Sarebbe come gestirlo. Ma non dimenticare di rimuovere la riga dal database quando hai finito e implementare una sorta di controllo delle inondazioni. So che ci sono tonnellate (letteralmente) di combinazioni per i guids ma eseguendo un semplice controllo IP rispetto a quanti tentativi negli ultimi 5 minuti e bloccandoli dopo il numero x di tentativi potrebbe contribuire ad aumentare la sicurezza del reset. Ciò diventerebbe più importante quanto più grande è la tua base di utenti e quanto spesso dimenticano le loro password.

2

Suoni perfettamente funzionanti. La mia unica raccomandazione sarebbe quella di usare un valore calcolato invece di un ID casuale per il collegamento email. Forse una versione hash del nome utente della persona? Questo è puramente a carico del mio disprezzo per i numeri casuali. :)

Problemi correlati