Vorrei sostituire le password con un codice temporaneo che viene inviato via email all'utente. Il flusso di login andrebbe in questo modo:
- L'utente inserisce il suo indirizzo email. "Se quell'e-mail appartiene a un utente, verrà inviato un messaggio" per impedire la divulgazione di e-mail valide.
- L'utente riceve per e-mail un codice alfanumerico (diciamo 8 cifre a lungo e valido per 1 ora).
- L'utente inserisce quel codice come "password".
Il buono:
- Nessuna password è memorizzata nel database.
- Non è necessario reimpostare la password.
- Gran parte del carico di sicurezza viene trasferito al provider di posta elettronica.
Il cattivo:
- È richiesto un indirizzo email. Se perdi l'accesso, perdi l'accesso al tuo account.
- Se dimentichi il tuo indirizzo email perdi l'accesso al tuo account.
- È scomodo controllare la tua posta ogni volta che accedi. Questo non sarebbe un problema per i dispositivi mobili, in cui un token API può essere memorizzato dopo il primo accesso.
Ci sono altri problemi, in particolare legati alla sicurezza? Per quanto posso dire, questo dovrebbe essere sicuro come una reimpostazione della password. In entrambe le situazioni ti viene inviata un'email con qualcosa che consente l'accesso completo all'account.
Qui ci sono domande simili ma con maggiore attenzione ai cookie o senza risposte solide. Sono più interessato agli aspetti positivi e negativi, specialmente a eventuali problemi di sicurezza.
- Come implementare l'autenticazione senza password in un sito web
- Autenticazione senza password nelle app Web - Quanto è sicuro?
Modifica chiarezza / obiettivi: Gli obiettivi sono limitare la quantità di dati sensibili memorizzati nel database (anche se i dati sono sottoposti a hash), essere accessibili agli utenti medi (in remoto con una connessione Internet) e non dipendere da un dispositivo diverso per l'autenticazione. Inoltre, sii il più semplice possibile (UX) e sicuro possibile dato quei vincoli.