JWT per la convalida e-mail di un account

1

Sto pensando di utilizzare questo flusso di registrazione per il mio sito:

1) Registri utente immettendo email e password.

2) Inserisci l'email e la password hash nel mio database

3) Poi costruisco un email con il mio url + jwt (contiene e-mail e scade in 1 ora) come parametro.

4) L'utente riceve email e clicca sul link.

5) Link inviato al mio server dove analizzo il parametro e controllo se il jwt è scaduto.

6) Se non è scaduto, prendo l'e-mail e contrassegno l'account come convalidato nel mio database.

Ci sono buchi evidenti in questo approccio che lascerebbe a grandi vulnerabilità?

    
posta user2924127 11.06.2015 - 01:04
fonte

1 risposta

3

Per un'attivazione e-mail tipica dovrebbe essere ok, tuttavia per una reimpostazione della password o una e-mail di conferma che ti accede dopo di solito vuoi garantire che i token siano monouso.

Ciò garantisce che le richieste di registrazione man-in-the-middle (ad esempio un amministratore di rete aziendale) non possano seguire lo stesso link e accedere dopo l'utente legittimo. La tua scadenza limita comunque la finestra in cui questa è una possibilità.

Devi anche stare attento con qualsiasi altro input dell'utente che firmi per altri scopi. Si desidera garantire che un utente non possa sfruttare alcune altre funzionalità immettendo input che generano un token valido per l'attivazione dell'email. Ti potrebbe piacere includere una stringa "azione" casuale nel payload per garantire che i token generati per altri scopi non possano essere utilizzati per l'attivazione della posta elettronica.

    
risposta data 11.06.2015 - 04:14
fonte

Leggi altre domande sui tag