Dovresti far sapere agli utenti se è stata effettuata un'e-mail durante la convalida della registrazione? [duplicare]

11

In molte applicazioni Web, l'e-mail deve essere un campo unico e gli utenti non possono registrare un account se la loro e-mail esiste già nel database.

Quando esegui la convalida nel modulo di registrazione, presumibilmente verificherai se è stata effettuata un'e-mail e informati se è possibile, perché possono sceglierne una diversa o provare a reimpostare la password.

Tuttavia, se fornite questo feedback, sembra che gli utenti malintenzionati possano verificare se gli utenti esistono nel database. Qualcuno potrebbe testare plausibilmente il tuo sito contro i dati trapelati dagli hack di grandi nomi e, se gli utenti stanno riutilizzando le loro password attraverso i siti, il tuo sito è potenzialmente vulnerabile.

La soluzione potrebbe essere semplicemente dare un feedback più generico su ciò che è andato storto senza menzionare specificamente la posta elettronica, anche se ciò potrebbe essere frustrante per l'utente medio che sta tentando di iscriversi. E se il tuo modulo di iscrizione richiede semplicemente un'email e una password, è ancora abbastanza ovvio che se si verifica un errore è probabile che l'email sia già presente nel database.

Qual è il modo migliore dal punto di vista della sicurezza per gestire l'informazione di un utente che un'e-mail è già stata presa al momento della registrazione?

    
posta IsThatQueeblo 11.02.2015 - 00:12
fonte

2 risposte

11

Una soluzione intuitiva e semplice è assicurarsi che uno script automatico (script dannoso) non possa provare a registrarsi con un elenco di e-mail per capire quali sono registrati. Ad esempio, usa la sfida CAPTCHA come parte della registrazione per assicurarti che sia umano cercare di registrare un account. In questo modo, anche se vengono provate poche e-mail utente, non è possibile controllare un numero elevato. Nota che stiamo assumendo che CAPTCHA strong non possa essere facilmente infranto.

Ma se è super sensibile e devi nascondere chi è registrato sul sito web di destinazione anche da utenti umani, quindi completa la registrazione e non mostra alcun messaggio di errore all'utente che l'e-mail sia già registrata; e basta informare l'utente alla fine del processo che ora devono confermare che l'e-mail appartiene a loro, per favore vai a controllare la tua e-mail; Nel back-end, se l'e-mail è già registrata, non fare nulla; basta inviare un'e-mail al proprietario dell'e-mail e informarli: sembra che tu abbia provato a registrarti nuovamente al nostro servizio, se hai dimenticato di avere un account con noi, questo è il tuo nome utente, e se non puoi ricorda la tua password, vai alla pagina di reimpostazione della password. Per essere al sicuro, puoi dire che se non hai provato a registrarti di nuovo, per favore ignora questa e-mail.

Se l'e-mail non è registrata nel database, nel back-end, creare un token di utilizzo monouso casuale in un URL e inviarlo alla nuova e-mail registrata e chiedere loro di confermare il nuovo account se volevano dire per creare un nuovo account.

In questo modo nascondi assolutamente tutto ai cattivi;

    
risposta data 11.02.2015 - 01:30
fonte
8

Se si tratta di una preoccupazione (vale a dire se il fatto dell'adesione di una persona sarebbe considerata informazione sensibile), una soluzione è quella di elaborare normalmente la registrazione dal punto di vista dell'utente nella pagina di registrazione, ma inviare una diversa e-mail che spiega che esiste già un account / fornisce dettagli su come reimpostare l'account esistente (o sostituirlo se applicabile) piuttosto che una e-mail di conferma per verificare l'indirizzo.

    
risposta data 11.02.2015 - 00:18
fonte

Leggi altre domande sui tag