Aller au contenu principal
Bethemesh
GuideBonnes pratiques

JWT : comprendre structure, signature, expiration et erreurs courantes

Apprenez ce qu’un JWT contient, ce que sa signature prouve réellement et pourquoi décoder un jeton ne revient pas à le vérifier.

Publié le 29 août 2026Lecture : 4 minPar Équipe Bethemesh
Intermédiaire
Afficher le sommaire
  1. Trois parties, généralement lisibles
  2. Décoder n’est pas vérifier
  3. Expiration, audience et émetteur
  4. Attention aux algorithmes et aux clés
  5. JWT n’est qu’une brique
  6. Ce que contient réellement la signature
  7. Les claims enregistrés doivent être validés, pas seulement affichés
  8. Jetons courts et renouvellement
  9. Où stocker un jeton dans le navigateur ?
  10. Erreurs fréquentes
  11. Utiliser les outils comme instruments d’inspection

Un JSON Web Token est souvent utilisé pour transporter des informations entre systèmes. Son format compact peut donner l’impression d’un objet chiffré ou intrinsèquement fiable. Ce n’est pas le cas.

Trois parties, généralement lisibles

Un JWT classique comporte un en-tête, un payload et une signature séparés par des points. Les deux premières parties sont encodées, pas nécessairement chiffrées. N’y placez donc pas un secret en supposant qu’il sera invisible.

Le décodeur JWT et l’inspecteur JWT permettent d’examiner localement les champs lisibles d’un jeton.

Décoder n’est pas vérifier

Afficher le payload prouve uniquement que la chaîne respecte suffisamment le format pour être lue. Pour faire confiance aux claims, une application doit vérifier la signature avec la clé et l’algorithme attendus, puis contrôler les contraintes applicatives.

Expiration, audience et émetteur

Des claims comme exp, nbf, iss ou aud n’ont de valeur que s’ils sont effectivement validés. Accepter un jeton expiré, destiné à une autre audience ou provenant d’un émetteur inattendu peut annuler une partie de la protection recherchée.

Attention aux algorithmes et aux clés

L’application doit imposer les algorithmes autorisés au lieu de faire aveuglément confiance à ce que déclare le jeton. Les clés de signature doivent être protégées et renouvelées selon le contexte.

L’encodeur JWT est utile pour comprendre la structure ou préparer des données de test ; générer un jeton n’équivaut pas à construire un système d’authentification sûr.

JWT n’est qu’une brique

Gestion des sessions, révocation, stockage côté client, CSRF, XSS et durée de vie des jetons restent des décisions d’architecture. Pour la partie identifiants, consultez aussi Mots de passe : génération, robustesse et politiques.

Ce que contient réellement la signature

La signature est calculée à partir des parties encodées du jeton et d’une clé selon l’algorithme choisi. Lorsqu’elle est correctement vérifiée, elle permet de détecter une modification et d’établir que le jeton a été signé par une entité possédant la clé attendue. Elle ne rend pas le payload confidentiel.

Les familles symétriques comme HS256 utilisent un secret partagé ; les familles asymétriques comme RS256 ou ES256 séparent clé privée de signature et clé publique de vérification. Le choix dépend de l’architecture, mais l’application doit toujours imposer ce qu’elle accepte.

Les claims enregistrés doivent être validés, pas seulement affichés

exp indique une expiration, nbf une date avant laquelle le jeton ne devrait pas être accepté, iat son émission, iss son émetteur et aud son audience. Lire ces champs avec l’inspecteur JWT est utile pour comprendre un jeton ; la sécurité vient du code qui les contrôle au moment de l’autorisation.

Prévoyez aussi une petite tolérance d’horloge lorsque plusieurs systèmes participent à la validation, sans transformer cette marge en prolongation excessive de la durée de vie.

Jetons courts et renouvellement

Réduire la durée de vie d’un jeton d’accès limite la fenêtre d’utilisation en cas de vol, mais impose une stratégie de renouvellement. Les refresh tokens, lorsqu’ils existent, doivent être traités comme des secrets de grande valeur, protégés et révocables selon le contexte.

La révocation est justement moins naturelle avec un jeton totalement autonome qu’avec une session conservée côté serveur. Cela ne rend pas JWT mauvais : cela signifie qu’il faut choisir le modèle en connaissance de cause.

Où stocker un jeton dans le navigateur ?

Il n’existe pas de réponse universelle indépendante du modèle de menace. Un stockage accessible à JavaScript est exposé en cas de XSS. Un cookie HttpOnly réduit cet accès mais ramène des considérations de cookies, SameSite et CSRF. Le choix dépend de l’application et de la manière dont elle communique avec son backend.

Ne placez jamais un JWT dans une URL : il peut se retrouver dans l’historique, les logs ou des informations de référence.

Erreurs fréquentes

Parmi les erreurs classiques : accepter un algorithme inattendu, ne pas vérifier iss ou aud, utiliser une clé trop faible, donner une durée de vie excessive, placer des données sensibles dans le payload, ou considérer qu’un rôle déclaré dans un jeton dispense le serveur de contrôler l’autorisation.

Un autre piège consiste à confondre authentification et autorisation. Même avec un jeton parfaitement valide, le serveur doit vérifier que l’utilisateur a le droit d’accéder à la ressource demandée.

Utiliser les outils comme instruments d’inspection

Le décodeur JWT, l’inspecteur JWT et l’encodeur JWT sont utiles pour apprendre, déboguer ou préparer des données de test. Évitez d’y coller des jetons de production sensibles lorsque vous n’avez pas vérifié le contexte de traitement ; dans Bethemesh, les outils concernés sont conçus pour fonctionner localement dans le navigateur.

Outils associés

Sécurité & confidentialité

Décodeur JWT

Décodez un JWT pour inspecter facilement son en-tête, son payload et ses principales informations.

100 % local
Utiliser l’outil
Sécurité & confidentialité

Inspecteur JWT

Inspectez un JWT pour consulter son en-tête, son payload, ses dates et ses principales informations.

100 % local
Utiliser l’outil
Sécurité & confidentialité

Encodeur JWT

Créez localement un JWT signé avec HS256, HS384 ou HS512.

100 % local
Utiliser l’outil

Collection

Sécuriser un site Web

  1. 01Sécurité Web : comprendre les protections essentielles d’un site
  2. 02Content Security Policy (CSP) : réduire les risques XSS et les chargements indésirables
  3. 03En-têtes HTTP de sécurité : lesquels activer et pourquoi
  4. 04Subresource Integrity (SRI) : vérifier l’intégrité des ressources externes
  5. 05JWT : comprendre structure, signature, expiration et erreurs courantes
  6. 06Mots de passe : génération, robustesse et politiques utiles
  7. 07Hash, intégrité et comparaison d’empreintes : ce qu’un hash peut vraiment prouver

Cet article vous a-t-il été utile ?