Tengo una aplicación web (Spring MVC) y tengo validación de datos de entrada para cada parámetro en el controlador. Lo que NO está presente es verificar el Mapa de Parámetro aceptado Tamaño . es decir, cuando el controlador esperaba 10 parámetros y la solicitud tiene 11 o 9.
Me han dicho que el tamaño de los parámetros es importante para evitar cualquier ataque o inyección, es decir, el punto de seguridad, especialmente la inyección de parámetros. Esto se resalta durante el escaneo de ZAP, donde ZAP agrega un nuevo parámetro query
a una URL que no tiene parámetros de solicitud.
En mi opinión, la verificación del tamaño se puede omitir a menos que haya una razón comercial. La aplicación simplemente ignorará los parámetros adicionales y, si hay menos de aceptable, la validación de los datos de entrada se hará cargo de ello. La verificación de tamaño no agrega beneficios razonables a la seguridad.
Mi razonamiento es que el desarrollador solo puede escribir para tener 10 parámetros, pero el marco subyacente puede agregar más parámetros. Por su cuenta, Spring MVC agregará un parámetro (token csrf). Y cualquier actualización en el marco puede introducir más o menos de estos.
Así que ahora, pregunta: ¿es importante verificar el tamaño del mapa de parámetros cuando cada validación de parámetros ya está en su lugar? ¿Cuál es el verdadero beneficio de seguridad de esto?