Sì, hai ragione. Ovunque sul tuo sito, dove è possibile confermare che un nome utente esiste o meno, può portare a enumerazione del nome utente .
Tuttavia, questo problema può essere risolto se è importante per il tuo sistema. All'interno di alcuni sistemi, l'enumerazione dei nomi utente non può essere evitata in quanto inerente alla natura dell'applicazione. Un esempio è un servizio di posta Web: qui gli indirizzi di posta elettronica sono considerati potenzialmente pubblici. Impedire agli utenti di conoscere altri nomi utente è difficile senza richiedere agli utenti di accedere con un identificatore diverso rispetto al loro indirizzo email ospitato e può portare a confusione e difficoltà nel recupero delle credenziali perse.
Tuttavia, con la maggior parte degli altri sistemi questo può essere risolto avendo l'indirizzo e-mail dell'utente come nome utente di accesso. Risolvi il problema avendo la password dimenticata e il modulo di registrazione come effettivamente la stessa pagina. Per iscriversi, questo sarebbe un modulo multi-step e il primo passo richiede semplicemente il nome utente (e-mail) che l'utente desidera utilizzare con il proprio sistema. Per il recupero dell'account, questa sarebbe la stessa forma ma il titolo direbbe qualcosa sulla falsariga di Please enter your email address to generate a password recovery email
.
In entrambi i casi, il modulo invierà all'utente un'e-mail. Se sono già registrati, il contenuto di questa email contiene un link per la reimpostazione della password. Se non sono registrati, il contenuto di questa email contiene un collegamento alla fase successiva della procedura di registrazione. Ciò impedirà l'enumerazione dei nomi utente sul tuo sistema in modo che un utente malintenzionato non sappia quali account scegliere come target.
Ovviamente ciò implica che si è disposti a consentire la reimpostazione delle password via e-mail, il che potrebbe non essere accettabile per alcune applicazioni come le applicazioni bancarie. Tuttavia, poiché questi tipi di account di solito hanno controlli di sicurezza aggiuntivi, di solito hanno nomi utente assegnati bancari piuttosto che consentire alle persone di sceglierne uno.