Il collegamento per la reimpostazione della password dovrebbe scadere quando si fa clic o attendere fino al completamento e al completamento del ripristino?

3

Im implementazione di una soluzione di recupero password che segue questa convenzione di Framework generico:

link

Le mie domande sono quando deve essere distrutto il token di reset. Secondo il frameowrk, "Il token di ripristino dovrebbe essere invalidato non appena è usato ."

Significa:

  1. per distruggere non appena l'utente atterra sulla pagina web per inserire una nuova password
  2. per distruggere quando chiamiamo l'API per reimpostarlo con la nuova password

Prima opzione significa che l'utente non può aggiornare / premere la pagina due volte perché sta per distruggere il token nel primo atterraggio. La seconda opzione consente all'utente di premere la pagina tutte le volte che desidera perché la convalida del token viene effettuata quando viene fornita una nuova password. Sebbene, potremmo andare oltre e convalidare il token di ripristino quando il cliente visita la pagina Web ma lo distrugge solo quando viene fornita una nuova password.

Potresti per favore darmi una mano su questo?

Nota: il collegamento per reimpostare la password viene fornito tramite e-mail.

    
posta Roberto14 02.11.2016 - 16:42
fonte

3 risposte

3

Non vedo alcun problema con # 2 ed è sicuramente più user friendly, purché la pagina di reset sia disponibile solo tramite https (in modo che non possa essere mitmata e qualcuno non possa introdursi più velocemente ).

Non vedo un vettore per sfruttare il # 2 che non è lì per # 1.

    
risposta data 02.11.2016 - 16:50
fonte
2

Con "usato", ovviamente intendevano quando è stato inviato il reset della password. Non quando è stato fatto clic sul collegamento. Altrimenti direbbero "Distruggi il token quando il link è cliccato "

Sarebbe un processo molto complicato se l'utente fa clic sul link, quindi inserisce una password che non rispetta le regole della password ... oops link invalidato, ora l'utente deve ricominciare dall'inizio.

Esiste il rischio che il token di reimpostazione della password effettiva possa essere rubato durante il transito sul caricamento della pagina e quindi utilizzato prima che l'utente invii effettivamente la reimpostazione della password. Ma questo rischio può essere mitigato non includendo il token di reset all'interno del link. Invece hai due link nella tua pagina di login: Password dimenticata - che invierà tramite email il token. L'e-mail quindi non contiene alcun collegamento.

Quindi ripristina la password, che fornirà un modulo che richiede nome utente, nuova password, password comfirm e token.

Quindi l'utente deve inserire manualmente il token dall'e-mail invece di essere incluso nel link, evitando così la possibilità di annusare il token e quindi usarlo prima dell'utente reale. Perché allora l'avversario deve bloccare in modo che la vera richiesta non arrivi mai.

    
risposta data 03.11.2016 - 09:25
fonte
0

Sono d'accordo con @crovers. Un altro trucco sarebbe mettere un timer sul link, diciamo 30 minuti. Facile da eseguire, improbabile che abbia un impatto sugli utenti validi, ma rende la vita più difficile per chiunque elabori un grosso dump di traffico.

    
risposta data 02.11.2016 - 20:29
fonte

Leggi altre domande sui tag