Ciò che conta di più in termini di sicurezza è ciò che guadagna un utente malintenzionato per sapere se un ID o un indirizzo email specifico ha un account con il tuo sito?
Ad esempio, se stai facendo qualsiasi tipo di attività che può essere vista come un problema di privacy, o se gli account sul tuo sito possono essere utilizzati per spendere soldi o avere un valore intrinseco (in altre parole se posso ottenere qualcosa dal phishing del tuo sito). Alcuni siti non hanno questo tipo di problema, ad esempio una piattaforma di micro-blogging o OSN visualizzerà comunque il tuo ID sulla tua pagina, quindi lasciare che l'utente sappia che ha digitato un ID inesistente può essere utile.
Dal punto di vista dell'usabilità, non dire al tuo utente se il suo ID esiste è disastroso. Qualsiasi sito web che utilizza ID dovrebbe almeno confermare un ID (gli ID sono specifici per il tuo sito in modo che non forniscano spammer molte informazioni). Anche non dire al tuo utente che l'indirizzo e-mail è una pessima idea: hanno bisogno di ridigitare ogni possibile password che hanno usato per ciascuno dei loro indirizzi e-mail.
Chiedi a te stesso quanto spesso i tuoi utenti visitano il tuo sito web. Una bassa frequenza di visite amplifica notevolmente i problemi di usabilità, al punto che potresti voler abilitare le password monouso inviate via SMS o e-mail di un modulo di accesso tradizionale, per chiunque si connetta solo poche volte all'anno.
Per esempio, ho due diversi indirizzi al lavoro, più password per diversi sottosistemi e una politica idiota di reimpostazione della password, in cima alla quale ho il mio indirizzo e-mail personale e una tonnellata di password diverse. Ci possono volere decine di tentativi per trovare la giusta combinazione email / password per un sito che non frequento spesso.
Come sottolineato da @William Forcier, puoi sapere se un'email è in uso in diversi modi :
- modulo per la creazione dell'account
- modulo di accesso
- modulo password dimenticato
Potresti comunque schierare difese diverse per ogni modulo. Se si decide di nascondere assolutamente gli indirizzi e-mail, è possibile bloccare / complicare la creazione dell'account (CAPTCHA) su un indirizzo IP specifico dopo un numero eccessivo di creazioni. Probabilmente avrai comunque bisogno di un meccanismo per proteggere dagli account di spam (ma ricorda di non rovinare la vita dei tuoi utenti effettivi con soluzioni inutilizzabili, ad esempio servendo sistematicamente CAPTCHA).