Assignation de MASSE

Auteur: Brouettelover 2024-01-21 16:02:32
Categories: > > Tags:

Description

l’assignation de masse ou auto-binding arrive quand un framework lie une requête automatiquement à un champ d’un objet interne. Il est donc possible qu’un développeur n’ait pas connaissance de l’ensemble des paramètres de son application.

Par exemple, en utilisant une méthode PATCH /api/users/ request qui permet à un utilisateur de modifier son username et son email qui inclu ce JSON :

{
    "username": "wiener",
    "email": "wiener@example.com",
}

Une autre méthode GET /api/users/123 donne le JSON suivant :

{
    "id": 123,
    "name": "John Doe",
    "email": "john@example.com",
    "isAdmin": "false"
}

Cela peut indiquer que les paramètres cachés id et isAdmin sont liés à l’objet utilisateur interne, avec les paramètres actualisés username et email.

On peut donc essayé de modifier la requête afine de changer le paramêtre isAdmin.

Pour cela on verifie que l’on peut envoyé le paramètre avec la requête PATCH

{
    "username": "wiener",
    "email": "wiener@example.com",
    "isAdmin": false,
}

Et essayé avec un paramètre mauvais afin de vérifier qu’il est bien pris en compte :

{
    "username": "wiener",
    "email": "wiener@example.com",
    "isAdmin": "jesuisfau",
}

Si tout fonctionne bien on peut donc essayer de modifier l’utilisateur afin de le rendre administrateur.

{
    "username": "wiener",
    "email": "wiener@example.com",
    "isAdmin": true,
}