JWT para la validación de correo electrónico de una cuenta

1

Estoy pensando en utilizar este flujo de registro para mi sitio:

1) El usuario se registra al ingresar el correo electrónico y la contraseña.

2) Introduzca el correo electrónico y la contraseña con hash en mi base de datos

3) Luego construyo un correo electrónico con mi cadena url + jwt (contiene correo electrónico y caduca en 1 hora) como parámetro.

4) El usuario recibe un correo electrónico y hace clic en el enlace.

5) Enlace enviado a mi servidor donde analizo el parámetro y compruebo si el jwt ha caducado.

6) Si no caducó, tomo el correo electrónico y marco la cuenta como validada en mi base de datos.

¿Hay algún agujero obvio en este enfoque que dejaría a las grandes vulnerabilidades?

    
pregunta user2924127 11.06.2015 - 01:04
fuente

1 respuesta

3

Para una activación de correo electrónico típica, debería estar bien, sin embargo, para un restablecimiento de la contraseña o una confirmación de correo electrónico que inicie sesión posteriormente, normalmente querrá asegurarse de que los tokens sean de un solo uso.

Eso asegura que las solicitudes de registro de un hombre en el medio (es decir, un administrador de la red corporativa) no puedan seguir el mismo enlace e iniciar sesión después del usuario legítimo. Sin embargo, su vencimiento limita la ventana donde esto es una posibilidad.

También debe tener cuidado con cualquier otra entrada de usuario que firme para otros fines. Desea asegurarse de que un usuario no pueda explotar alguna otra funcionalidad al ingresar una entrada que generará un token válido para la activación de su correo electrónico. Es posible que desee incluir alguna cadena de "acción" aleatoria en su carga útil para asegurarse de que los tokens generados para otros propósitos no se puedan usar para la activación del correo electrónico.

    
respondido por el thexacre 11.06.2015 - 04:14
fuente

Lea otras preguntas en las etiquetas