Estoy trabajando en una aplicación en la que necesito otorgar un acceso limitado temporal por correo electrónico a los usuarios que no van a crear cuentas / contraseñas, pero tengo una pequeña cantidad de información personal sobre ellos.
El plan actual que tengo es generar una clave secreta específica del usuario y luego enviar un correo electrónico que contenga un enlace a "www. [sitio web] .com / email / [secreto]". Una vez que un usuario visita esta página, se le pide que ingrese su nombre / fecha de nacimiento. Si hay una coincidencia para el combo secreto, nombre y DOB, se le da acceso al usuario. El enlace debe durar unos días, pero eventualmente caducará.
Soy consciente de que esto no es lo mejor, pero los requisitos son bastante limitantes y existe un nivel de riesgo aceptable.
Dos preguntas generales:
1) ¿Hay alguna diferencia práctica en la seguridad entre "www. [website] .com / email / [secret]" y "www. [website] .com / email? secret = [secret]"? ¿Sería mejor tener el secreto como parte de la URL? ¿O como param?
2) ¿Alguien puede sugerir alguna capa adicional de seguridad que pueda agregar sin violar los requisitos originales? (acceso otorgado por correo electrónico, no cuentas / contraseñas, tengo datos de usuario básicos como DOB)