2010-06-21 16 views
14

mi sono imbattuto in questo statementPerché "Password dimenticata" è cattiva?

Non usare "password dimenticata" funzionalità. Ma se è necessario, assicurati che fornisca solo le informazioni all'utente effettivo, ad es. utilizzando un indirizzo email o una domanda di prova che l'utente legittimo già fornito in passato; non consentire all'utente corrente di modificare le informazioni sull'identità finché non è stata fornita la password corretta .

Qualcuno può chiarire perché le password dimenticate sono un rischio? Ho intenzione di gestirlo inviando all'utente un link nella sua e-mail per reimpostare la password, ma non fornirà loro la vecchia password (dal momento che è comunque hash), e non chiederà loro la vecchia password al momento del ripristino. C'è qualcosa di rischioso nel mio approccio?

+7

Utente: "Ho dimenticato la password!". Server: "Ok, puoi cambiarlo. Qual era la vecchia password?" Utente: "...";) – Gordon

+3

Meglio correlato a http://stackoverflow.com/questions/522967/forgot-password-what-is-the-best-method-of-implementing-a-forgot-password-functi – Gordon

+6

È possibile verificare la sicurezza utilizzata nei siti Web "in denaro", come Western Union, PayPal, eBay e simili. Se fanno qualcosa devono essere abbastanza buoni :) e fanno quello che vuoi fare. – helios

risposta

2

Il tuo approccio sembra molto sicuro per me :) Ovviamente dovrebbe essere un collegamento una tantum!

Anche il messaggio/la pagina "succes" e "indirizzo email non trovato" devono essere uguali. E avere un testo anonimo.

come:

"Se il tuo indirizzo di posta elettronica è nel nostro sistema abbiamo inviare una e-mail"

In questo modo, qualcuno sarà in grado di determinare se l'indirizzo e-mail è nel vostro sistema oppure no !

+7

Nulla è peggio di aver perso il login e non essere informato dal sistema che l'indirizzo email inserito è quello corretto. Si prega di non stampare lo stesso testo per il successo e il fallimento, o gli utenti ti odieranno. Perché, sapete, gli utenti * fanno * usano più indirizzi e-mail e gli utenti * dimenticano le loro password e accessi e non sanno nemmeno quale indirizzo email hanno usato per registrarsi per quale sito. Non dimenticare: il tuo sito potrebbe essere la cosa più importante al mondo * per te *, ma per l'utente, potrebbe essere solo qualcosa che usa di tanto in tanto e non accede spesso. – OregonGhost

+0

Potrebbero eventualmente controllare la loro casella di posta elettronica per l'e-mail applicata, per vedere se è quella giusta! ?? – Phliplip

+2

@Phliplip: quanto tempo dovrebbero aspettare? Un minuto? Dieci minuti? Un'ora per ogni email che hanno provato? O dovrebbero semplicemente inserire tutti gli indirizzi e-mail e quindi aspettare ancora un'ora?E se avessero fatto un refuso? Non c'è niente di sbagliato nell'aiutare gli utenti ad andare d'accordo. Fidati di me, gli utenti si infuriano se ci vuole molto tempo per entrare nel sistema, se tutto ciò che vogliono è solo guardare un minuto. Possono anche creare un nuovo login nel frattempo, che potrebbe non essere la cosa che volevi in ​​primo luogo. – OregonGhost

4

Se Charlie può leggere e-mail di Alices, può anche accedere a tutti i siti che offrono la funzionalità "password persa".

+23

Se Charlie può leggere le e-mail di Alice, allora il problema non è sicuramente nel funzionalità "password dimenticata" poiché può utilizzare l'email Alice per registrarsi a qualsiasi sito con un'identità falsa. – nico

+3

La dichiarazione citata dice che è possibile inviare informazioni alla mail che l'utente ha fornito in passato. Come molti sistemi fanno. Il sistema si basa sulla sicurezza della posta elettronica (è una cosa ragionevole). Se hai compromesso la sicurezza della tua email ... beh ... mi dispiace molto. – helios

+1

@nico: Questo è un problema molto più piccolo di Charlie che ottiene l'accesso a tutti gli account utente esistenti di Alice. Il problema molto * è * la funzionalità "password persa"; è ragionevole per gli ambienti con requisiti di sicurezza bassi, in particolare per servizi gratuiti in cui altri approcci sono troppo costosi. Ma dovrebbe essere inaccettabile per tutto ciò che riguarda il denaro reale. –

2

L'invio di un collegamento in un messaggio di posta elettronica è in realtà conforme alle indicazioni fornite.

Ciò a cui si sconsiglia è la pratica di consentire agli utenti di reimpostare la propria password senza dover avere alcuna conoscenza aggiuntiva, ad esempio un pulsante che reimposterà la password senza costringere l'utente a fare clic sul collegamento nella propria e-mail. Non sono sicuro di aver mai visto un sistema del genere, ma è certamente una cattiva idea =).

12

L'approccio è assolutamente corretto, a condizione che non si memorizzi la password.

Chiedere la domanda di sicurezza è assolutamente negativo, in quanto è incline a essere aggirato solo indovinando una risposta.

Solo una piccola modifica: anche se potrebbe essere difficile catturarli tutti, dovresti cercare di impedire l'uso di account di posta elettronica di mailinator (o indirizzi email da servizi simili) perché mailinator + ha dimenticato la password = disastro.

+1

A chi incolpare ma in questo caso l'utente? – atamanroman

+1

@fielding: assolutamente vero, ma - a seconda del sito web - non è possibile (e non dovrebbe) aspettarsi una conoscenza molto alta sulla sicurezza di Internet da parte del pubblico. – nico

+1

questo è giusto, ma in questo caso specifico direi che è il lavoro degli amministratori, non il nostro. tutti dovrebbero sapere che è più di una oops-a-daisy se si dimentica la password e si perde l'accesso al proprio indirizzo e-mail (che in qualche modo era falso). Rendilo idiota e qualcuno diventerà un idiota migliore) – atamanroman

2

Fintanto che si invia il collegamento all'e-mail che si è memorizzato nel sistema, si dovrebbe essere OK - ed è quello che mi aspetterei da un sistema.

Vorrei anche inviare una conferma "hai aggiornato la password" allo stesso indirizzo.

Inoltre, se l'utente cambia il loro indirizzo di posta elettronica che si potrebbe prendere in considerazione l'invio di una e-mail all'indirizzo vecchio affermando che è stato modificato per la nuova uno.Forse un po 'fastidioso, ma fornirebbe un punto in più in cui qualcuno potrebbe individuare se il loro account è stato compromesso.

3

La tecnica più fastidiosa sarebbe il seguente: si sceglie dimenticato la password, viene chiesto per email e ottenere la propria password (che molti usano utente per il porno e il loro online banking;)) torna in chiaro invece di impostare una nuova uno.

Vorrei semplicemente copiare i metodi di grandi giocatori, come paypal o google. Penso che ora dovrebbero fare quello che fanno. Il caso più comune dovrebbe essere: password dimenticata - ottenere un collegamento alla propria email dove è possibile impostarne uno nuovo o generare uno casuale, sicuro (che l'utente cambierà immediatamente a 1234).

Come già ci siamo: non restituire mai qualcosa come "password errata", poiché ciò implica che esiste almeno il nome utente.

2

È piuttosto una dichiarazione radicale e solo una pessima idea se non si comprendono i rischi coinvolti e si è sicuri che ci sia un beneficio netto (come nella maggior parte delle cose nella vita).

Non memorizzare mai le password in una forma recuperabile. Anche consentire al cliente di memorizzare un suggerimento sul sistema mette a rischio il cliente. Le password devono sempre essere archiviate utilizzando un meccanismo non reversibile, ad esempio un hash. Dato che è il caso, non è possibile recuperare la vecchia password del cliente e inviarla a loro.

Reimpostare la password su richiesta a un valore casuale, quindi inviare via e-mail quel valore al cliente presenta l'opportunità di effettuare attacchi Denial of Service contro singoli accessi (anche nel caso in cui si disabiliti un account dopo un numero di login fallito tentativi).

Questo lascia solo l'opzione di generare un accesso alternativo per il cliente e inviarlo via email a loro - e contrassegnare l'account per costringere il cliente a selezionare una nuova password al prossimo accesso.

Tutti questi approcci delegano la sicurezza dell'account del cliente al sistema di posta elettronica del cliente (e tutti gli altri componenti di posta elettronica e di rete tra il server e la casella di posta del cliente) che possono, nel migliore dei casi, essere molto deboli - di certo non è niente può fornire qualsiasi garanzia di sicurezza a meno che non si controlli all dell'infrastruttura.

C.

+2

Suppongo che la mia soluzione (inviando all'utente un collegamento per reimpostare la password) ricada nel regno di ciò che si chiama 'delegando la sicurezza dell'account cliente all'e-mail dei clienti sistema che ritieni sia rischioso. Quindi quale alternativa proponi? – duder

Problemi correlati