¿La autenticación de correo electrónico con un hash (dirección + cadena) es inseguro?

2

Quiero darle a un suscriptor del boletín la posibilidad de cambiar su información. Ya que estamos usando una empresa externa para enviar nuestro boletín, no puedo poner una clave en el boletín (o no sin mucho esfuerzo).

Creé un formulario donde puedes ingresar tu correo electrónico y después de verificar si es un suscriptor, envía un correo electrónico con un enlace para cambiar tu información.

El enlace contiene el correo electrónico simple y una clave de hash que se realiza como sha1 (correo electrónico + "someString"), por ejemplo:

  

domain.com/[email protected]&key=356a192b7913b04c54574d18c28d46e6395428ab

En mi script, luego verifico si el correo electrónico dado + "someString" tiene el mismo resultado que la clave.

Sé que el enlace seguirá siendo el mismo para cambiar su información, pero quería preguntar si hay algún problema de seguridad al hacer todo esto de esta manera, ¿o debería crear claves únicas y almacenarlas en la base de datos?

Solo sería cambiar tu nombre de pila, apellido, tal vez me moleste demasiado.

    
pregunta Som1 03.02.2015 - 09:41
fuente

1 respuesta

2

Dado que desea cambiar la información del usuario, probablemente ya tenga una base de datos con (correo electrónico, nombre, apellido), así que también agregaría el token (más el tiempo de caducidad).

Si lo usaría de una manera sin estado (por ejemplo, solo para confirmar la suscripción), ese es un enfoque aceptable, pero debería usar un HMAC en lugar de un hash de valores concatenados.

    
respondido por el Ángel 03.02.2015 - 17:00
fuente

Lea otras preguntas en las etiquetas