È sicuro avere una funzione "email non più disponibile" sul modulo di registrazione?

12

Stavo solo implementando una nuova funzione nel modulo di registrazione del mio sito che controlla se un indirizzo email è ancora disponibile per registrare un account con. Mi chiedo se sia sicuro mostrare all'utente che un determinato indirizzo email non è più disponibile.

Questa funzionalità è un rischio per la sicurezza legato alla privacy dei miei membri e come posso usarlo mentre difendo contro i robot alla ricerca di indirizzi email?

    
posta xxdriesxx 17.03.2012 - 16:14
fonte

3 risposte

12

Fa filtrare informazioni su quali indirizzi email sono già stati usati, ma questo è davvero un problema se un utente malintenzionato può controllare rapidamente possibili indirizzi email.

La soluzione semplice è:

  • consente solo un numero limitato di tentativi o richieste da un particolare IP in una sessione

In questo modo un cliente valido può ancora provare una coppia se la sua scelta iniziale non è disponibile, ma un utente malintenzionato che tenta di enumerare gli indirizzi e-mail avvierà nuove sessioni.

    
risposta data 17.03.2012 - 16:42
fonte
15

Un modo per implementare il controllo di disponibilità senza fornire alcun feedback ai potenziali aggressori è di inviare sempre una e-mail all'indirizzo utilizzato per la registrazione. Che aspetto potrebbe avere il contenuto dell'email:

  • "Un account per [email protected] [con nome utente xy] era appena registrato su $ site. Fai clic qui per confermare."
  • "Qualcuno ha provato a registrare un account per [email protected] [con nome utente xy] su $ site, tuttavia questo account esiste già. Se hai dimenticato la password, fai clic qui. Se non hai avviato la registrazione, ti preghiamo di ignorare questa email."

In questo modo, solo il vero proprietario dell'indirizzo email sarà in grado di verificare se l'indirizzo è già stato utilizzato per registrarsi al servizio. Questo approccio è ad esempio utilizzato da Ubuntu One.

    
risposta data 20.03.2012 - 10:18
fonte
3

No, questo è un vulnerabilità di enumerazione degli utenti .

As an attacker if I can use your login or forgotten password page to narrow my list from 10000 targets to 1000 targets, I will.

La migliore implementazione per risolvere questo problema è che sia la registrazione che i moduli password dimenticati sono un processo a più fasi (esattamente lo stesso back-end / processo dopo il modulo iniziale).

Il modulo inizia con un singolo campo che richiede indirizzo email . L'utente inserisce [email protected] e quindi fa clic su Invia. Quindi vengono visualizzati la stessa pagina chiedendo loro di controllare il proprio account di posta elettronica.

Se l'utente è già registrato, riceve un'email contenente un link di reimpostazione della password con un token casuale che scade tra qualche ora.

Se l'utente non è registrato, riceve un'email contenente un link di registrazione con un token casuale in modo che possa continuare la procedura di registrazione. Come bonus, hai già convalidato il loro indirizzo email per quando in seguito dimenticheranno la loro password!

Nessuno che non abbia accesso all'account email [email protected] può determinare se l'utente è registrato o meno.

Guarda l'esempio sul post sul blog di Troy Hunt sulle reimpostazioni della password e la vulnerabilità di enumerazione del nome utente su alotporn.com per un buon esempio di quanto sia importante soddisfare le aspettative di privacy dell'utente.

    
risposta data 11.02.2015 - 10:05
fonte

Leggi altre domande sui tag