¿Cómo Ocurre?
Mass Assignment refleja un escenario donde la información del lado del cliente se relaciona automáticamente con objetos o variables del lado del servidor. Los hackers explotan esta cualidad entendiendo la lógica de negocio de la aplicación y mandando información especialmente construida al servidor, adquiriendo permisos administrativos o insertando información alterada.
Impacto Posible
El ataque puede resultar en manipulación de información y escalada de privilegios desde un usuario normal a un administrador.
Ejemplo Práctico
- A Bob le han asignado desarrollar un endpoint API de registro
/apirule6/userque tomará el nombre, nombre de usuario y contraseña como parámetros de input (POST). La tabla de usuarios tiene una columnacreditcon un valor de50. Los usuarios mejorarán su suscripción para tener un valor más alto. - Bob ya ha diseñado el formulario y usado la funcionalidad de mass assignment en Laravel para guardar toda la información proveniente del lado del cliente a la base de datos.

- El problema aquí es que Bob no está filtrando del lado del servidor. Como está usando la funcionalidad de mass assign, también está introduciendo valores de crédito en la base de datos que los atacantes pueden modificar.
- La solución es asegurarse de que se filtra del lado del servidor
/apirule6/user_sy que el valor por defecto de crédito debe ser50incluso si se introduce otro valor del lado del cliente.
Medidas de Mitigación
- Antes de usar cualquier framework, debes estudiar cómo las inserciones y actualizaciones del backend se realizan. En el framework Laravel, los arrays fillable y guarded mitigan dichos escenarios.
- Evita usar funciones que relacionen un input de un cliente a variables de código automáticamente.
- Permite el cambio sólo de aquellas variables que deban ser actualizadas del lado del servidor.
