N.NOTKOKO // HACK
COURS 11 / 18

Comprendre cookies, jetons et rôles

Identifier les éléments qui transportent une identité sans confondre données lisibles et droits valides.

CookiesBearerJWT
01 // COMPRENDRE

Où vit la session ?

Un cookie reçu avec Set-Cookie peut être renvoyé automatiquement par le navigateur selon son domaine, son chemin et ses attributs. Un jeton Bearer est généralement envoyé dans Authorization. Un paramètre user_id ne suffit pas à établir l’identité : c’est au serveur de vérifier les informations d’authentification. HttpOnly limite l’accès au cookie depuis JavaScript ; Secure restreint son envoi aux connexions sécurisées ; SameSite encadre les envois entre sites.

02 // COMPRENDRE

Lire un JWT sans croire son contenu

Un JWT signé courant comporte trois parties séparées par des points : en-tête, charge utile et signature. Les deux premières sont généralement encodées en Base64url et peuvent être lisibles sans clé. La signature sert à détecter les modifications. Décoder un rôle ou remplacer le texte de ce rôle ne fournit pas une signature valide.

EXEMPLE PÉDAGOGIQUE
{"sub":"eleve-a","role":"reader","exp":1893456000}
Comment le lire

sub identifie le sujet, role est ici un champ choisi par l’application, et exp une date d’expiration en secondes Unix. Lire ces valeurs ne prouve ni la validité du jeton ni les droits réellement appliqués.

03 // COMPRENDRE

Comparer les états

Observe une requête déconnectée, puis connectée avec ton compte de test. Note ce qui change. Une opération sensible peut aussi demander un jeton CSRF, qui protège un contexte de requête et n’est pas un mot de passe. Ne copie pas de cookie ou de jeton de session dans un service de décodage public. Lorsqu’un test échoue, distingue expiration, signature invalide et permission insuffisante.

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

Modifier la partie encodée change le message signé et invalide normalement la signature. Le serveur doit vérifier cette signature et les permissions, pas simplement croire le rôle lisible.

Exemple de réponse

La modification invalide la signature que le serveur vérifie.

QUESTION 2 / 3

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

À toi de répondre

Corrigé détaillé — question 2

HttpOnly empêche normalement JavaScript d’accéder au cookie via les API habituelles du navigateur. Le navigateur peut toujours l’envoyer dans les requêtes concernées : ce n’est pas une interdiction de transport HTTP.

Exemple de réponse

Il empêche JavaScript de lire le cookie.

QUESTION 3 / 3

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

À toi de répondre

Corrigé détaillé — question 3

Décoder rend les données lisibles. Vérifier la signature établit qu’elles correspondent au message signé avec la clé attendue ; il faut également contrôler expiration, destinataire et permissions selon le contexte.

Exemple de réponse

Décoder permet de lire les données, vérifier garantit leur intégrité.

05 // À RETENIR

Lire une identité déclarée ne signifie pas pouvoir la faire accepter.