Estoy usando mi servidor Parse personalizado con Heroku, por lo que estoy bastante seguro (99%) de que es bastante seguro usar cosas como oAuth2 y contraseñas de hash de 1 vía.
El problema es que estoy intentando implementar mi propio restablecimiento de contraseña personalizado .
Esto es lo que estoy haciendo actualmente:
-
El usuario solicita restablecer la contraseña
-
Se genera un token personalizado (tiene un temporizador que debe eliminarse después de 10 minutos)
-
Se envía un correo electrónico con una solicitud POST de http (s) para publicar la identificación del token
-
Mi aplicación comprueba si existe la identificación del token
-
Si es verdadero, el usuario es redirigido a una página web donde puede restablecer su contraseña
-
El usuario hace clic en enviar y su nueva contraseña se publica mediante http (s) POST
-
Mi servidor puede procesar y establecer la nueva contraseña de forma segura
Primero que nada, ¿es un problema el uso de una solicitud inicial de publicación de http (s) con el identificador del token para solicitar un restablecimiento de la contraseña? Sé que si alguien consiguió este enlace físico mientras estaba activo (en 10 minutos) podría cambiar la contraseña de un usuario y luego iniciar sesión.
En segundo lugar, cuando hago otra solicitud POST de http (s) con la nueva contraseña de usuario, ¿el método es "decentemente" seguro y una práctica segura? ¿Porque una vez más, si alguien pudiera de alguna manera interceptar la solicitud, podría obtener acceso a la "nueva" contraseña de los usuarios?
El restablecimiento de mi contraseña no necesita ser perfecto, sin embargo, quiero que sea una buena práctica.
¿Hay algo grave en lo que estoy haciendo mal / cometiendo un error? En caso afirmativo, ¿qué debo hacer para solucionarlo?
* Note que uso "http (s)" con (s) entre paréntesis porque todavía no he traído un SSL.
Gracias.