EDIT - Due risposte di seguito.
Risposta originale
Potresti incorporare un altro ID nel link che riporta all'ID sessione originale.
Il requisito è che il link di posta elettronica, quando viene cliccato, venga avviato nello stesso browser o possa essere su un altro browser? Cosa succede se è su una macchina diversa? Ad esempio, cosa succede se reimposti la password dal mio telefono, quindi passa al mio computer o tablet, fai clic sul link nell'email e configuro una nuova password? Potrei farlo se voglio usare l'archivio delle password sul mio computer anche se ho avviato il mio telefono. Dal punto di vista della facilità d'uso, sembra che il link della password nell'e-mail e non l'ID della sessione dal browser originale sia importante.
Inoltre, se il link "Password dimenticata" è stato cliccato da un utente malintenzionato che sta tentando di ottenere la voce e si forza l'ID sessione a essere lo stesso, l'utente reale che riceve il link per la reimpostazione della password potrebbe sperimenta un DOS a seconda di come funziona il tuo sistema. Certamente, l'utente legittimo non può reimpostare la propria password con il collegamento fornito poiché l'ID sessione che ha generato la richiesta "Password dimenticata" risiede nel browser degli hacker.
Come sviluppatore di applicazioni, dovresti essere in grado di svolgere una delle seguenti operazioni:
- Riconoscere una seconda sessione avviata dal link di reimpostazione password come legittima e lasciarla passare.
- Elabora il link di ripristino e lo riporta al primo ID di sessione.
Tuttavia, penso davvero che il n. 2 sia sconsiderato dato che un utente malintenzionato potrebbe cliccare sul link Password dimenticata. Penso che la cosa migliore da fare sia usare la seconda sessione.
Per inciso, i sistemi più paranoici che ho visto costringono un nuovo login una volta che la password è stata resettata. Cioè, fai clic su "Password dimenticata", ricevi l'e-mail, fai clic sul link, reimposta la password, quindi ti viene presentata una nuova pagina di accesso che richiede di inserire il tuo nome utente e la nuova password (invece di essere loggato tranquillamente come conseguenza della reimpostazione della password).
Seconda risposta: chiarimento nei commenti alle domande
Sembra che tu ti interessi con l'articolo di OWASP a cui si fa riferimento. In questo caso, l'articolo consiglia di eseguire una sessione continua per la reimpostazione della password e utilizzare un canale OOB (Alternate or Out Of Band) per aumentare la probabilità che si parli con l'utente legittimo. In questo caso, l'utente avvia la procedura di reimpostazione della password, risponde correttamente alle domande di sicurezza, è bloccato dall'account , un codice PIN OOB viene inviato tramite SMS o e-mail (nota, non un link di ripristino), l'utente inserisce il codice PIN corretto, quindi può essere inserita una nuova password.
Questo non era ciò che la domanda originale conteneva. In questo caso, un collegamento per la reimpostazione della password è non da inviare e solo un codice PIN da visualizzare con un lettore di e-mail e inserito nello stesso flusso della sessione di reimpostazione della password. Saltare su un nuovo ID di sessione (anche se possibile) dovrebbe essere visto come un attacco o un bug di sistema e rifiutato.