¿Qué hay en riesgo si no valido Confirmar contraseña en el lado del servidor y solo realizo esta validación en el lado del cliente?

1

Al cambiar la contraseña, en mi aplicación estoy realizando solo la validación JS para la contraseña y confirmo los valores del campo de contraseña. Se recomienda tener validaciones del lado del servidor. Pero confirmar la contraseña tiene el propósito de que el usuario esté seguro de la contraseña que ha escrito. ¿Cuál es el riesgo real si no envío el valor de la contraseña de confirmación al servidor y solo guardo el valor de la contraseña?

    
pregunta Sum 04.08.2017 - 14:45
fuente

2 respuestas

3

La regla es controlar el lado del servidor lo que realmente importa para el servidor, y el lado del cliente lo que importa para el usuario. Por ejemplo, si desea permitir solo ciertos caracteres en la contraseña y una longitud máxima, esto debe ser controlado por el servidor. Si solo quiere asegurarse de que el usuario sepa lo que acaba de escribir, los controles del lado del cliente están bien.

Algunos controles se pueden hacer dos veces, porque lo que importa para el servidor son los datos, pero lo que importa para el usuario es que se le avise de un error tan pronto como sea posible. Por ejemplo, está bien controlar primero la validez de un lado del cliente de campo tan pronto como el campo se haya ingresado para advertir al usuario inmediatamente, y luego controlar el lado del servidor cuando se envía el formulario.

    
respondido por el Serge Ballesta 04.08.2017 - 16:52
fuente
1

Depende de lo que estés haciendo con él.

Si solo está validando que password1 y password2 son idénticos, entonces el servidor o el cliente están bien.

Pero la validación de contraseñas y el saneamiento de back-end son un requisito.

Si bien la validación de JS está bien para las solicitudes enviadas manualmente, a los malos actores no les importa o utilizan su formulario, excepto para leer dónde enviar sus ataques de fuerza bruta.

la falla en la limpieza de la entrada de confirmación de contraseña puede dejarlo abierto a una serie de problemas, como la inyección de SQL.

Ejemplo: alguien escribe una secuencia de comandos para enviar su formulario de restablecimiento de contraseña o creación de cuenta y agrega ; DELETE * FROM USERS WHERE 1;

La falta de validación hace que la tabla de usuarios se pierda.

Para obtener una introducción decente sobre las diversas cosas contra las que debe protegerse, consulte: enlace

    
respondido por el DrDamnit 04.08.2017 - 14:58
fuente

Lea otras preguntas en las etiquetas