Un jeton lisible : pourquoi un jeton de navigateur n'est pas secret
Le défi
Les applications web confient souvent à votre navigateur un long jeton pour se souvenir de qui vous êtes. Cela ressemble à un mélange aléatoire, mais la partie du milieu n'est pas un message secret - c'est juste un code réversible que n'importe qui peut retransformer en texte clair. L'atelier le déchiffre pour vous. Lisez-le et soumettez le nom d'utilisateur qu'il contient.
Ce que tu vas apprendre
- Comprendre que la partie du milieu d'un jeton de navigateur est un code réversible, pas un secret
- Retransformer un segment de jeton encodé en texte clair lisible
- Trouver et lire le nom d'utilisateur dans un jeton décodé
- Expliquer pourquoi les mots de passe et les détails privés ne doivent jamais être cachés dans ce type de jeton
- Reconnaître que quiconque possède une copie du jeton peut en lire le contenu
Compétences testées
Prérequis
- Les applications confient à votre navigateur un jeton pour se souvenir de qui vous êtes
- Certains codes de texte sont réversibles en texte clair
Comment ça marche
Quand vous vous connectez à un site web, celui-ci confie souvent à votre navigateur un long jeton à transporter à chaque visite pour que le site se souvienne de qui vous êtes. Ce jeton se compose de trois parties séparées par des points. La partie du milieu contient des détails vous concernant, et au premier regard, elle ressemble à un fouillis de lettres et de chiffres sans signification.
Ce qu'il faut retenir, c'est que ce fouillis n'est pas un message secret verrouillé par une clé. Il est écrit dans un code réversible, une manière courante d'emballer du texte pour qu'il voyage en toute sécurité. Le retransformer en texte clair ne nécessite ni mot de passe ni astuce particulière : l'atelier le fait en une étape et affiche {"user":"guest42","role":"guest"}. Le nom d'utilisateur qu'il contient est donc guest42, et il n'a jamais vraiment été caché.
C'est toute la leçon : un jeton de ce type est lisible par quiconque en possède une copie. Il est normal qu'il transporte votre nom d'utilisateur ou votre rôle, car ce ne sont pas des secrets. Mais un véritable secret, comme un mot de passe, ne doit jamais être glissé dedans, car il se retrouverait tout simplement exposé au grand jour.
Erreurs fréquentes
- Penser que le jeton est un secret verrouillé. La partie du milieu est un code réversible, pas un message protégé par mot de passe ; aucune clé n'est nécessaire.
- Essayer de le casser ou de le deviner. Il n'y a rien à casser : l'atelier le retransforme directement en texte clair.
- Lire le mauvais champ. La réponse est la valeur de
user, pas derole. - Modifier la façon de saisir la réponse. Soumettez le nom d'utilisateur exactement comme indiqué :
guest42.
Comment s'en protéger
Comme quiconque possède une copie du jeton peut le lire, les développeurs ne devraient y placer que des détails non secrets.
- Ne jamais placer un mot de passe ou un autre secret privé dans un jeton détenu par le navigateur.
- Ne conserver que ce qui peut être vu sans risque, comme un nom d'utilisateur ou un rôle, et récupérer les informations sensibles côté serveur.
- Faire expirer les jetons au bout d'un certain temps pour qu'une ancienne copie cesse de fonctionner.
- Envoyer et stocker les jetons avec précaution pour qu'ils soient plus difficiles à voler dès le départ.