Description
Une api REST place les noms et les valeurs dans son URL.
Comme par exemple :
/api/users/123 - décomposons :
- /api représente la racine
- /users représente les utilisateurs
- /123 représente l'identifiant d'un utilisateur
Par exemple une page qui permet de modifier un utilisateur en fonction de son nom :
La requête envoyé au serveur web sera de ce style :
GET /edit_profile.php?name=peter
Celle envoyé vers l’api REST sera donc :
GET /api/private/users/peter
Un attaquant pourra donc manipuler l’URL du serveur pour exploiter l’API.
On pourrait par exemple envoyer une URL encoder peter/../admin comme paramètre.
Ce qui mènerait vers le chemin admin en passant par celui de peter.
GET /edit_profile.php?name=peter%2f..%2fadmin
Ce qui enverait à l’api :
GET /api/private/users/peter/../admin
Ce qui reviendrait à aller à /api/private/users/admin