¿Por qué @Valid en los cuerpos de petición más las consultas parametrizadas forman parte de la programación segura en Spring?
Opciones
- La validación bloquea entradas malas; los parámetros enlazados frenan la SQLi (Opción correcta)
- Solo mejoran la velocidad de cada petición
- Cifran todo el tráfico que gestiona la API
- Ocultan los stack traces a usuarios y bots
Respuesta
La validación rechaza pronto las entradas mal formadas, y los parámetros enlazados evitan la SQL injection; ninguna de las dos basta por sí sola
Por qué
Casi todas las vulnerabilidades web empiezan con entradas no confiables. Lista de programación segura:
- Valida las entradas (tipo, longitud, formato, allow-list) en el servidor.
- Usa consultas parametrizadas o parámetros de JPA, nunca concatenación de strings.
- Codifica la salida según el contexto (HTML, JS) para frenar XSS.
- Comprueba la autorización en cada petición, no solo en el login.
- No filtres stack traces ni errores internos a los clientes.
- Mantén actualizados las dependencias y los frameworks.
Recuerda
Valida entradas, parametriza consultas, codifica salidas, autoriza cada llamada.