Penso sia importante verificare che gli indirizzi email inseriti appartengano effettivamente a uno dei tuoi utenti prima di inviare l'e-mail di recupero. Supponendo che il tuo modulo di iscrizione raccolga già indirizzi email, sarebbe sciocco non usarli per eseguire questo semplice controllo.
Senza verifiche, una delle principali preoccupazioni sarebbe rappresentata dagli spammer / hacker che immettono tonnellate di indirizzi email inventati e non validi. Ciò farebbe sì che il server invii molti messaggi che rimbalzano e attira l'attenzione da filtri spam e database di spammer. Alla fine, il tuo server potrebbe essere messo in blacklist e nessuna email proveniente dal tuo sito andrebbe più passata.
Inoltre, gli indirizzi email errati sono abbastanza comuni, quindi potresti avere istanze in cui un utente invia per errore un'email di recupero alla posta in arrivo di qualcun altro.
Senza ulteriori informazioni sulla tua implementazione, non posso davvero segnalare altri problemi, ma nella fase 3, ci sono alcune misure di sicurezza aggiuntive che puoi prendere in considerazione. Ad esempio, devi assicurarti che gli URL di ripristino siano lunghi e casuali, in modo che non possano essere facilmente indovinati o forzati. Probabilmente anche tu non vuoi che gli URL siano attivi per sempre; è una buona idea espirarli dopo un'ora o due se un utente genera un URL di ripristino ma non lo visita mai, o se l'utente lo visita ma non fornisce mai una nuova password. Per ridurre ulteriormente la possibilità di un hack, è possibile disabilitare completamente la funzionalità di recupero della password se l'account è stato utilizzato nei giorni scorsi, o se la posizione basata su IP è atipica per quell'utente (sebbene queste misure possano arrecare disturbo agli utenti). / p>