Sono d'accordo con @schroeder che le e-mail di reimpostazione della password sono una delle aree in cui tende ad essere più accettabile per indicare agli utenti di fare clic sui collegamenti. Dopo tutto, l'utente è stato colui che ha attivato la reimpostazione della password e dovrebbe aspettarsi un messaggio di posta elettronica. Potresti aggiungere del testo nell'email che dice "Questa email è stata inviata a causa della tua richiesta." Se non hai richiesto la reimpostazione della password, non fare clic su questo link. Normalmente non devi fare clic su alcun link in un'email inaspettata, anche se appare essere legittimi. "
La ragione per cui ti incoraggio a riconsiderare questo è perché la tua alternativa (usando un PIN) sarà più complicata per gli utenti e probabilmente causerà più mal di testa per te. La complessità del PIN a parte per un momento, dovrai istruire gli utenti su cosa fare, e queste istruzioni ti richiederanno di dire loro dove sul tuo sito andare per inserire il codice. Mentre dici "Vai alla home page del nostro sito, fai clic su Password dimenticata, e fai clic su" Inserisci reimposta PIN ". Non è razziale che gli utenti continuino a lamentarsi del fatto che non riescono a trovare i pulsanti o altrimenti si confondono su cosa fare. Facendo semplicemente clic su un link si elimina un sacco di questa confusione.
Per quanto riguarda la complessità del PIN, dovresti essere in grado di fare alcune cose per neutralizzare lo "spazio delle chiavi" ridotto di un PIN casuale a 6 cifre rispetto al tuo hash. È possibile aggiungere lettere e alcuni simboli per aumentare il numero di combinazioni possibili. È possibile richiedere all'utente non solo il PIN di reimpostazione ma anche l'indirizzo e-mail (che richiede a un utente malintenzionato di indovinare più di un semplice PIN). Puoi anche aggiungere un CAPTCHA o un altro controllo "liveness" per ostacolare l'indovinello automatico all'input del PIN. Infine, puoi monitorare i tentativi di reimpostazione del PIN e bloccare gli IP (o in caso contrario ritardarli) che presentano un numero elevato di tentativi.
Proprio come con una funzione di reimpostazione della password basata su link, questi PIN dovrebbero essere validi per un singolo uso e dovrebbero scadere entro 30-60 minuti, indipendentemente dal fatto che siano usati o meno.
Adottando misure come queste è possibile eliminare le minacce più probabili contro un sistema di reimpostazione della password basato su PIN.