Mass Assignment — Sur-attribution de propriétés
★★★★★
Définition
Quand un framework lie automatiquement les champs d'une requête aux attributs d'un objet/modèle, un attaquant peut ajouter des champs non prévus (ex: role, is_admin, balance) pour modifier des propriétés sensibles non exposées par l'UI.
Exemple
# Requête légitime attendue
POST /api/users
{"username":"bob","email":"bob@x.com"}
# Requête abusée : on ajoute des champs privilégiés
POST /api/users
{"username":"bob","email":"bob@x.com","role":"admin","is_verified":true} Défenses
// Whitelist explicite des champs autorisés
// Laravel
$user->fill($request->only(['username','email']));
protected $fillable = ['username','email'];
// Rails : strong parameters
params.require(:user).permit(:username, :email)
// Ne jamais binder l objet entier depuis l input utilisateur