6

Voy a exponer un tema que quizá sepan, pero para mi no esta del todo claro(por la cantidad de tiempo que llevo con el framework laravel), ojalá que este tema se puede exponer aquí:

Resulta ques estoy en desarrollo de un sitio web(panel admin) y tengo muchos controladores y archivos propios de la aplicación y empiezo a realizar preguntas,
¿Es necesario hacer validaciones con javascript y del lado de servidor en el controller la hora de enviar datos?.

Resulta que leí por ahí(Aquí Especificamente) que es necesario validar de las dos formas para mas seguridad al sitio, pero ahí viene la otra duda, ¿No crees que será mucho código si solo estoy enviando dos inputs?, entonces de ahí nacen nuevas preguntas respecto a lo que estoy haciendo:

  • ¿Es necesarios hacer dos tipo de validaciones por la cantidad de campos enviados?
  • ¿Es una buena práctica?
  • ¿Que tanta seguridad me da hacer esto? o ¿No tiene que ver con la seguridad?
  • ¿Es para comodidad de programador hacer esto?

Actualmente estoy haciendo validaciones en javascript y realizando Form Request Validation este último solo si son mas de tres campos.

Espero sinceramente que me puedan aclarar algunas cosas ya que todavía estoy a tiempo de realizar cambios.

2
  • 2
    es buena practica validar en los dos lados!, a nivel de backend te da seguridad de los datos que entrar no son basuras, en cuanto al front evitas enviar constantemente los valores ademas si tienes desabilitado javascript o un intruso juega con tu codigo ya lo estas validando Commented el 11 abr. 2018 a las 14:54
  • gracias por la respuesta @JackNavaRow Commented el 11 abr. 2018 a las 15:12

2 respuestas 2

6

Respuesta corta:

No es necesario pero es lo ideal.


Respuestas más detalladas:

¿Es necesario hacer dos tipos de validaciones por la cantidad de campos enviados?

No es necesario, pero si hicieras solo validación en el backend/Laravel (la cual es obligatoria), estarías yendo en contra levemente de la Experiencia de Usuario (UX), en la cual se sugiere mostrarle un mensaje de error al usuario lo más pronto o temprano posible. Esto último con el fin que el usuario no envíe el formulario y tenga que esperar (1, 2 o 3 segundos) que valide del lado servidor para obtener mensajes de validación simples como "Este campo es requerido" o "solo puedes ingresar dígitos".

¿Es una buena práctica?

Sí, sin duda alguna es buena práctica validar en el lado cliente y servidor.

¿Que tanta seguridad me da hacer esto? o ¿No tiene que ver con la seguridad?

La seguridad siempre será relativa y nunca tendrás un sistema 100% seguro, además depende qué reglas de validación implementes y cómo lo haces, pero validar en el lado servidor (Laravel), normalmente (y si lo haces "bien"), va a ayudar a filtrar y restringir muchas cositas que intentan los bots, usuarios tontos y usuarios muy hábiles.

¿Es para comodidad de programador hacer esto?

No estoy seguro de entender esta pregunta, pero la "comodidad" está en cada programador, y en la destreza y experiencia que tenga al usar una herramienta como Laravel y/o generar validaciones en el frontend. Las validaciones de la información que se recibe siempre han sido y serán un tema tedioso, así sea un formulario de 2 o 200 campos, así que para algunos nunca será cómodo hacer validaciones.

4
  • Muchas gracias por tu respuesta Shaz. Commented el 11 abr. 2018 a las 15:06
  • Es obligatorio validar del lado del servidor? Por ejemplo si quiero validar si un campo no este vacio tambien se haria en ese caso? Commented el 18 feb. 2021 a las 15:44
  • @JuanRivera en la respuesta lo explico... es OBLIGATORIO en el lado del servidor.
    – Shaz
    Commented el 18 feb. 2021 a las 23:14
  • @Shaz no entiendo bien el porque es obligatorio validar en el lado del servidor, podrias darme una referencia donde pueda leer y asi entender mejor? Commented el 19 feb. 2021 a las 12:06
3

Puedes establecerlo de la siguiente forma:

Las validaciones de frontend se comunican con el usuario y ayudan a uno de varios casos, como por ejemplo evitar campos vacios

Las validaciones a nivel de backend ayudan en especifico de manera muy simple con laravel a evitar o avisar sobre el tamaño de un archivo, si un registro esta duplicado, etc.

Entonces no se trata de doble trabajo, pues al hacer ambas validaciones estas ayudando tanto al usuario como al propio desarrollador a prevenir la mayor cantidad de comportamientos inesperados posibles.

Ten en cuenta que si solo trabajas con las validaciones del servidor y regresas solo las respuestas que otorga por ejemplo MySQL ante alguna inconsistencia para ti es útil pero para el usuario no tanto

1

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.