Erreurs de sécurité JWT et comment les éviter

JWT est puissant pour l'authentification API, mais de nombreux incidents de production proviennent d'erreurs d'implémentation, et non de JWT lui-même. Si votre application utilise des jetons d'accès, des jetons d'actualisation et des revendications de rôle, votre sécurité dépend des détails.
1) Accepter n'importe quel algorithme
Ne faites jamais confiance à l'algorithme envoyé uniquement par l'en-tête du jeton. Votre serveur doit appliquer une liste verte explicite (par exemple, uniquement RS256).
- Épingler les algorithmes attendus côté serveur.
- Rejeter les jetons avec un
algmanquant ou inattendu. - Utilisez des bibliothèques JWT matures et activement entretenues.
2) Jetons d'accès de longue durée
Si un jeton d'accès fuit et reste valide pendant des jours, un attaquant dispose de trop de temps. Gardez les jetons d'accès de courte durée et comptez sur le flux d'actualisation.
- Jeton d'accès : durée de vie courte (5-15 minutes).
- Jeton d'actualisation : TTL plus long + rotation + révocation.
- Invalider les sessions en cas d'activité suspecte.
3) Fuite de jetons dans les URL et les journaux
Ne placez jamais de JWT dans les paramètres de requête.
- Envoyer des jetons dans l'en-tête
Authorization: Bearer .... - Supprimer les en-têtes d'authentification des journaux et des traces APM.
- Masquer les champs sensibles dans le rapport d'erreurs client.
4) Validation de réclamation faible
Valider iss, aud, exp, nbf et iat. Vérifiez également les contraintes commerciales telles que l'identifiant du locataire et les rôles requis.
- Rejeter les jetons expirés ou non encore valides.
- Lier l'audience attendue par service.
- Ne faites pas confiance aux revendications de rôle sans vérifications côté serveur.
5) Aucune stratégie de rotation des clés
Fuite de clés, certificats expirés et incidents se produisent. Planifier la rotation avant le lancement de la production.
- Utilisez les en-têtes
kidet les points de terminaison JWKS. - Prise en charge des clés qui se chevauchent pendant les fenêtres de rotation.
- Surveiller les échecs de validation de signature pour détecter les anomalies.
Liste de contrôle pratique pour le durcissement
- Appliquer une liste d'autorisation d'algorithme stricte.
- Utilisez des jetons d'accès de courte durée.
- Rotation des jetons d'actualisation et prise en charge de la révocation.
- Stockez les jetons en toute sécurité (préférez les cookies httpOnly).
- Valider toutes les réclamations standards et critiques pour l'entreprise.
- Mettre en œuvre la rotation des clés avec surveillance.
Outils associés
- JWT Decoder — inspectez l'en-tête et la charge utile en toute sécurité.
- Hash Generator — vérifie les empreintes digitales des messages et des fichiers.
- Password Generator — créez des secrets puissants pour les comptes d'administrateur et de service.