Introduction
Les jetons Web JSON (JWT) ne sont pas conçus pour maintenir la connexion d'un utilisateur. Ils ne sont pas sécurisés et il existe un outil mieux adapté pour cela : les sessions de cookies régulières.
Contexte Technique
La spécification des JWT est conçue pour des jetons à très courte durée de vie (~5 minutes ou moins), ce qui ne convient pas aux sessions qui nécessitent des durées de vie plus longues. De plus, l'authentification sans état n'est pas réalisable de manière sécurisée, car il est nécessaire d'avoir un état pour gérer les jetons de manière sécurisée.
Les JWT qui stockent simplement un jeton de session sont inefficaces et moins flexibles que les cookies de session réguliers, sans offrir d'avantage. La spécification des JWT elle-même n'est pas considérée comme fiable par les experts en sécurité.
Analyse et Implications
L'utilisation des JWT pour les sessions peut entraîner des failles de sécurité et des applications compromises. Même si certaines entreprises, comme Google, utilisent des JWT, ce n'est pas pour les sessions utilisateur dans les navigateurs, mais plutôt comme transport de connexion unique pour transférer les sessions entre serveurs.
Il est important de noter que les sessions régulières sont plus sécurisées et plus flexibles que les JWT. Les frameworks de serveur Web tels qu'Express offrent des implémentations de sessions faciles à utiliser.
Perspective
Il est recommandé d'éviter l'utilisation des JWT pour les sessions et de préférer les sessions de cookies régulières. Si vous avez besoin de jetons à courte durée de vie, il existe des spécifications plus sécurisées comme PASETO. Il est également important de se tenir informé sur les meilleures pratiques de sécurité pour les sessions et l'authentification.