Garantire la sicurezza nell'autenticazione dell'URL Token

1

Sto provando a prevedere la reimpostazione della password se l'utente dimentica la sua password. Quello che ho fatto è creare una pagina html (ad esempio email.html) in cui l'utente inserirà il suo indirizzo email. Quando l'utente invia il suo indirizzo email, la pagina web lo inoltra a un servlet, chiamiamolo forgot_pass.java. Quindi viene creata una stringa numerica alfa a 128 bit (ad esempio id). Questa stringa insieme all'url di forgot_pass.java (come url? Id = 21345 ...) viene inviata all'indirizzo email dell'utente. Cliccando sul link, servlet forgot_pass.java verifica se l'ID è valido o meno e controlla anche se è scaduto o meno. Se supera i controlli sopra menzionati, l'utente viene reindirizzato ad un'altra pagina html (chiamiamola re-enter.html). In questa pagina l'utente può inserire il suo ID e-mail, inserire due volte la password e inviare. Questo conclude il processo.

La mia preoccupazione è che se qualcuno accede a re-enter.html, non sarà in grado di cambiare la sua password? Come posso migliorare la sicurezza?

    
posta Dev 07.02.2014 - 11:59
fonte

1 risposta

4

Che cosa hai suona ad un livello base, quante persone gestiscono le reimpostazioni della password. Un paio di cose da considerare.

  • I token dovrebbero essere validi per un solo utente. Ad esempio, non dovresti avere un gruppo di "token di ripristino validi" ma un elenco di associazioni di nomi di token - >. Quindi, quando qualcuno accede alla prima pagina, puoi collegarla all'account da cui avrebbero dovuto fare clic sul link.
  • quando l'utente utilizza con successo il link password dimenticata, dopo aver controllato il loro gettone si dovrebbe impostare un token di sessione per loro, e poi verificare la presenza di un token di sessione valida quando si carica la seconda pagina. In questo modo se qualcuno cerca di accedere direttamente alla seconda pagina non sarà in grado di usarlo senza una sessione valida
  • è necessario precompilare l'ID e-mail per la seconda pagina in base all'utente a cui è indirizzato il token. Altrimenti c'è il rischio che un utente possa resettare la password di un altro.
  • Una volta che il token è stato utilizzato con successo si dovrebbe invalidare per impedire che qualcuno si imbatte in futuro dal reimpostare nuovamente la password degli utenti
  • Dovresti avere una scadenza del token "non utilizzata" per impedire che siano utili in modo permanente.
  • Un account utente deve avere un solo token valido alla volta. Se un utente ne ha emesso uno, e ricomincia il processo dovrebbe sovrascrivere il primo token.
risposta data 07.02.2014 - 12:59
fonte

Leggi altre domande sui tag