¿Es seguro omitir las validaciones del lado del servidor?

3

Estoy trabajando en una aplicación web con un formulario de registro como el siguiente. Todas las validaciones se realizan en el lado del cliente mediante enlace .

Soy consciente de que las validaciones del lado del cliente se pueden omitir, pero actualmente no me he molestado en implementar las validaciones del lado del servidor, ya que son mucho más difíciles de implementar y requieren lógica de procedimiento en el código HTML, etc.

Mi razonamiento es que en realidad no hay nada aquí que requiera validaciones del lado del servidor, no se carguen archivos o datos de gran importancia que deben ser correctos. Si el usuario da una dirección de correo electrónico incorrecta, nunca recibirá su correo electrónico de confirmación, si el nombre es incorrecto, es insignificante, y así sucesivamente.

La única razón por la que las validaciones del lado del cliente se omitirían si el usuario elige deshabilitar javascript, en cuyo caso se puede usar una etiqueta de noscript para indicarles que la aplicación no funcionará sin javascript.

¿Hay problemas de seguridad con lo que estoy haciendo?

    
pregunta Lee 26.01.2014 - 20:33
fuente

4 respuestas

6

La respuesta corta es sí, siempre debe implementar validaciones del lado del servidor para evitar ataques. Nunca puede confiar en las aplicaciones del lado del cliente, ya que cualquier cosa que se instale localmente puede ser subvertida por un atacante. También pueden ver lo que está verificando, lo que les da aún más información con la que atacar a su servidor.

Muchas vulnerabilidades atacan vulnerabilidades en los sistemas operativos subyacentes o servicios de soporte, por ejemplo, desbordamientos de búfer, inyecciones de SQL y muchos otros. Las verificaciones del lado del servidor son la única forma en que tiene que evitar que estos tipos de fallas sean explotados, verificando que la entrada está dentro de los límites y está en el formato esperado. Sin las comprobaciones (y los mensajes de registro que advierten sobre entradas sospechosas) no recibirá ninguna advertencia de que alguien está apuntando a su sistema, podría ser hackeado y nunca saberlo.

Incluso si nunca se dirigen las verificaciones laterales de los servidores, agregue otro nivel de seguridad, si usted o alguien más realiza un cambio en la aplicación del lado del cliente que rompe algo, entonces las verificaciones del lado del servidor pueden ahorrarle una gran cantidad de limpieza. Vale la pena su tiempo.

    
respondido por el GdD 26.01.2014 - 20:46
fuente
3

Puede ser seguro, pero probablemente no.

Depende de por qué para comenzar, estás haciendo una validación. Y, en particular, ¿Qué hace si se envían datos no válidos?

Si está realizando la validación del lado del servidor, entonces tiene la garantía de que solo los datos válidos llegan a su aplicación. Pero si realiza la validación del lado del cliente, entonces no tiene dicha garantía.

Hay docenas de formas de omitir la validación del lado del cliente, no todas ellas maliciosas. Pero, por supuesto, la intención maliciosa es grande. Si alguna de sus validaciones afecta el funcionamiento de su aplicación de alguna manera, entonces la validación del lado del servidor no es opcional.

Por ejemplo, verificando si la cantidad en un carrito de compra es un número: debe ser validado por el servidor. Verifique si el campo de verificación de la contraseña coincide con el original: no es tan importante si simplemente está ignorando el campo de verificación en el servidor de todos modos.

    
respondido por el tylerl 27.01.2014 - 19:08
fuente
1

Todo depende de lo que estés haciendo con los datos del usuario.

Si vas a guardar la entrada del usuario en una base de datos, por ejemplo, tienes que neutralizar adecuadamente los datos que ingresan a la base de datos, o de lo contrario, es probable que su base de datos sea destruida, o pirateada de otra manera, por la información del usuario diseñada para modificar sus consultas de SQL.

O para otro ejemplo, si está enviando un correo electrónico a una dirección de correo electrónico proporcionada por el usuario, los spammers te piratearán y usarán tu sitio para enviar cantidades ilimitadas de spam a los usuarios de su elección.

Los chicos malos piensan fuera de la caja. Usted también tiene que hacerlo.

    
respondido por el ddyer 28.01.2014 - 01:50
fuente
1

Es seguro omitir la validación del lado del servidor para ese formulario, ya que trunca las entradas excesivamente grandes, utiliza consultas parametrizadas y html codifica los datos si alguna vez los imprime.

La respuesta aceptada indica que "siempre debe implementar validaciones del lado del servidor para evitar ataques". Para esta forma en particular, ¿qué validaciones deben implementarse que serían más seguras y más confiables que el saneamiento (truncamiento, consultas parametrizadas y codificación html)?

    
respondido por el Rick Jolly 15.11.2014 - 04:22
fuente

Lea otras preguntas en las etiquetas