Hai dimenticato la password e hai rivelato se l'account esiste

15

Quindi quando clicchi il link per la password dimenticata e inserisci il tuo indirizzo email, sembra che i siti (e altri programmatori con cui ho parlato) siano uno di questi due modi di pensare;

  • Notifica all'utente se l'indirizzo e-mail corrisponde o meno a quello nel database e in base a ciò si consiglia di impostare o meno l'indirizzo e-mail di reimpostazione della password;
  • Rispondere immediatamente con una "Email inviata" o "Se questo utente esiste, ti abbiamo inviato una email di reimpostazione della password" indipendentemente dal fatto che o una corrispondenza si sia verificata con conseguente invio di un'email. Questo è fatto (apparentemente) per ragioni di sicurezza.

Ho implementato il secondo io stesso e in genere ho riscontrato fastidio con gli utenti a causa di;

  1. Se un utente digita il proprio indirizzo email, gli viene detto che viene inviata un'email, ma non ne riceverà mai uno.
  2. Se hanno inserito un indirizzo email diverso da quello con cui si sono registrati, di nuovo non riceveranno un'email.
  3. Una combinazione di quanto sopra può comportare più tentativi, ma nessuna ricezione di un'email di reimpostazione della password, con conseguente rinuncia.

Infine, dopo aver esaminato siti Web popolari che utilizzano il secondo scenario, ho scoperto che tentando di registrare un account con questi siti in cui l'indirizzo email inserito corrisponde a un account esistente, un "questo indirizzo email è già in uso, o "non disponibile" viene visualizzato comunque un messaggio.

In quanto tali, quali sono i vantaggi che non rivelano se una e-mail di reimpostazione della password ha trovato un account e, in che modo questi vantaggi quando la registrazione richiede la rivelazione di corrispondenze e-mail?

    
posta Stafford Williams 30.08.2015 - 00:48
fonte

3 risposte

8

A volte c'è un compromesso tra sicurezza e usabilità.

Se per te o per i tuoi utenti è importante che altre persone non sappiano che stanno utilizzando il sito, la tua seconda scelta è la migliore.

Puoi sempre inviare un'email a un indirizzo che non esiste nel tuo sistema, ad esempio "Qualcuno ha richiesto una reimpostazione della password per questo indirizzo, ma non è nel nostro sistema". Che gestisce la tua seconda lamentela.

Aggiungi un link per ripetere la reimpostazione della password nella pagina di conferma. Spero che digiteranno correttamente l'email la prossima volta.

Quindi, decidi se evitare l'enumerazione degli utenti è più importante di un occasionale indirizzo e-mail errato.

What are the benefits not revealing whether a password reset email has matched an account

Non fornisci o confermi un elenco di indirizzi email degli utenti a un utente malintenzionato e non fai sapere ad altre persone che un determinato utente sta utilizzando il tuo sito. Se si tratta di un sito sui gattini, a chi importa? Se si tratta di una banca o di un sito di relazione extra-coniugale, allora è importante.

How are these beneficial when registration requires email matches to be revealed?

Chi dice che la registrazione richiede questo? Fai la stessa cosa per la registrazione. Richiedi l'indirizzo email, invia il link "passaggio 2" o "qualcuno ha richiesto una registrazione sul nostro sito ma questo indirizzo è già registrato".

    
risposta data 30.08.2015 - 02:27
fonte
2

Quindi immagino che come primer dobbiamo considerare cosa può realmente fare un utente malintenzionato se si conferma / nega l'esistenza di una e-mail sul proprio sistema in un modo facilmente accessibile. Questo è uno scenario possibile:

  • Un utente malintenzionato ha ottenuto l'accesso a un database di indirizzi e-mail e password compromessi. (Ad esempio, possono accedere a una di queste email dell'utente)
  • Vogliono accedere ad alcuni account degli utenti sul tuo servizio.
  • Il tuo servizio confermerà o negherà se un account esiste con un indirizzo email.

In questo caso possono facilmente provare tutte le e-mail che hanno nel loro database contro la funzione di reimpostazione della password, raccogliere i risultati restituiti e se hai confermato che qualcuno di loro esiste, accedere a tali e-mail e seguire la reimpostazione della password collegamento.

Se è abbastanza semplice seguire la procedura di registrazione, allora hai ragione nel presumere che la reimpostazione della password sia opaca e non aggiunga ulteriore sicurezza. Possono eseguire semplicemente l'attacco sopra indicato nella pagina di registrazione anziché nella pagina di reimpostazione della password.

Alcuni modi per ovviare a questo sono:

  • Consentire agli utenti di registrarsi con un nome utente o assegnare loro un nome utente al momento della registrazione e farli utilizzare da quel momento in poi piuttosto che dal proprio indirizzo email.
  • Non consentire loro di accedere finché non hanno fatto clic sulla conferma dell'email. In questo modo, se qualcuno tenta di registrarsi con un'e-mail che è già stata registrata, dì semplicemente "abbiamo inviato un'email di conferma al tuo indirizzo email, cliccaci per accedere"
  • Tentativo di implementare alcuni tipi di metodi anti-forza bruta sulle pagine che possono confermare / negare l'esistenza di un indirizzo email, come un CAPTCHA.

Tuttavia, come affermato in precedenza, entrambi hanno un impatto relativamente significativo sull'usabilità. Come sempre, la sicurezza è sempre un compromesso tra praticità e paranoia.

    
risposta data 30.08.2015 - 02:32
fonte
2

Le risposte finora sono buone ma è importante notare che da un punto di vista del profilo - non mi interessa se non entro nel loro account ma la conoscenza che stanno usando un servizio è sufficiente per social progettare una situazione / monitorare i propri feed sociali per potenziali password (animali domestici, bambini, automobili, ecc.).

Detto questo, durante la registrazione dell'utente sarebbe una brutta mossa UX (o almeno un campo minato) per spiegare all'utente che l'indirizzo email potrebbe essere o non essere già in uso. Potresti inventare una logica funky che consente loro di ricreare un account e inviarli tramite e-mail dicendo "hey, sembra che tu abbia già un account", ma questo è sgradevole e francamente una perdita di tempo per l'utente. Lo stesso vale per una pagina di accesso- "utente / pass non valido" sia per account che senza account è una buona abitudine ... ma quando la pagina di registrazione fornisce liberamente tali informazioni E si corre il rischio che gli utenti siano infastiditi se pensano che Mi sono iscritto ma non l'ho fatto.

Personalmente, cerco di utilizzare OpenID il più possibile per i servizi basati sul Web per evitare che questo scenario si verifichi. Tutti questi giorni abbiamo un account Google / Facebook / Twitter ...

    
risposta data 30.08.2015 - 05:58
fonte

Leggi altre domande sui tag