Vulnerabilidades conocidas en Spring

RECU-0172 (Recurso Experiencia)

Recomendaciones

A continuación se ofrecen una serie de recomendaciones para solucionar las vulnerabilidades que presenta Spring y que son conocidas.

Funcionamiento indebido del mecanismo de binding entre modelo y vista

En ocasiones puede producirse un funcionamiento indebido indebido del mecanismo de binding entre modelo y vista. Cuando los datos se obtienen del formulario de la vista no hay ninguna comprobación para garantizar que el usuario no haya añadido campos extra al formulario. Añadiendo campos extra con el nombre adecuado, es posible sobrescribir campos del modelo (por ejemplo, el identificador del cliente) que el programador nunca pretendió que fuesen editables.Esta vulnerabilidad puede permitir, por ejemplo que un usuario tome control de la cuenta de otro usuario.

MADEJA recomienda indicar cuales son los campos sobre los que se va a permitir que se haga binding, para evitar que el usuario pueda sustituir algún valor de manera inadecuada.Se pueden definir los atributos de los que se quiere hacer el binding a través del método setAllowedFields

Problemas con los campos ocultos de un formulario.

La segunda vulnerabilidad explota el hecho de que la lógica que se va a llamar desde un formulario viene definida por un campo oculto de dicho formulario. Modificando dicho campo oculto es posible obtener de vuelta archivos a los cuales los usuarios nunca deberían tener acceso. Esta vulnerabilidad puede permitir al usuario obtener todo el código de la aplicación.

MADEJA recomienda que nunca se usen datos directamente que un usuario puede controlar, por campos ocultos , cookies, o dirigir summits para controlar las vistas reales que son dadas en el modelo