N.NOTKOKO // HACK
COURS 09 / 18

Lire une API et vérifier les accès

Comprendre les objets d’une API et la différence entre connaître un identifiant et avoir le droit de le lire.

RESTJSONIDOR
01 // COMPRENDRE

Relier les objets

Une API expose des opérations sur des objets : livres, profils, documents ou commandes. Un identifiant peut apparaître dans le chemin, un paramètre, le corps ou une réponse. Lis les relations plutôt que de deviner tous les numéros. Une propriété document_id indique un lien ; elle ne dit pas nécessairement quelle route l’utilise ni quels droits sont nécessaires.

EXEMPLE PÉDAGOGIQUE
{"id":18,"title":"Atlas","document_id":"doc-6","owner":"eleve-a"}
Comment le lire

id est ici celui du livre. document_id désigne un autre objet. owner renseigne un propriétaire : ce champ doit être interprété avec la session courante et la documentation.

02 // COMPRENDRE

Authentification et autorisation

L’authentification détermine qui tu es. L’autorisation décide si cette identité peut effectuer une action sur cet objet. Une IDOR apparaît lorsqu’un serveur utilise un identifiant fourni par le client sans vérifier suffisamment les droits sur l’objet. Un identifiant compliqué limite la découverte fortuite, mais ne remplace pas le contrôle d’accès.

03 // COMPRENDRE

Comparer deux comptes de test

Dans un laboratoire, crée deux comptes que tu contrôles et un document privé pour chacun. Capture la lecture du document A avec le compte A. Rejoue ensuite cette même lecture avec la session B, en ne changeant que le contexte d’identité. Le serveur doit refuser ou masquer l’objet. Vérifie aussi le corps : un 200 avec une erreur n’est pas une lecture réussie. Les ressources volontairement publiques ne démontrent pas une IDOR.

04 // À TOI DE RÉFLÉCHIR

Vérifie que tu as compris.

3 questions pour mettre les idées en pratique. Réponds avec tes mots, puis vérifie chaque réponse.

La correction repère les notions attendues et certaines formulations proches. Elle reste indicative : lis aussi l’explication. Tes réponses restent dans cette page et ne sont pas enregistrées.

QUESTION 1 / 3

Une réponse courte et expliquée suffit.0 / 1200

À toi de répondre

Corrigé détaillé — question 1

L’authentification établit l’identité. L’autorisation vérifie si cette identité peut effectuer l’action demandée sur l’objet concerné ; être connecté ne donne pas tous les droits.

Exemple de réponse

L’authentification établit l’identité, l’autorisation vérifie les droits.

QUESTION 2 / 3

Une réponse courte et expliquée suffit.0 / 1200

À toi de répondre

Corrigé détaillé — question 2

Même si un identifiant est imprévisible, il peut être communiqué ou divulgué. Le serveur doit vérifier, pour chaque accès, que le compte est autorisé à agir sur cet objet.

Exemple de réponse

Le serveur doit vérifier les permissions sur chaque objet.

QUESTION 3 / 3

Une réponse courte et expliquée suffit.0 / 1200

À toi de répondre

Corrigé détaillé — question 3

Lis d’abord le document A avec le compte A, puis rejoue la même lecture avec le compte B. Un document privé doit être refusé ou masqué à B ; vérifie le corps de réponse et la règle de confidentialité.

Exemple de réponse

Je demande le document avec l’autre compte et je vérifie que l’accès est refusé.

05 // À RETENIR

L’objet, l’acteur, l’action et la règle d’accès doivent être explicités.