Quelles sont les 3 parties d’un JWT?
À quoi sert la signature dans un JWT?
À garantir que le token n’a pas été modifié et provient bien du serveur.
Où peut-on sotkcer le JWT dans le navigateur?
Quelle est la différence principale entre cookie et local storage pour JWT?
Qu’arrive-t-il si quelqu’un vole notre JWT?
Il peut se faire passer par l’utilisateur tant que le token est valide.
Comment peut-on voler un JWT?
Quelles sont 2 protections de base contre les JWT volés?
Pourqoi ajouter un timestamp dans le JWT?
Pour réduire la fenêtre de temps d’exploitation en cas de vol.
Pourqoi ajouter l’adresse IP dans le JWT?
Pour empêcher son utilisation depuis une autre machine.
Pourqoi ne pas utiliser l’adresse MAC dans le JWT?
Parce qu’elle n’est pas accessible au serveur via HTTP.
Comment le backend peut être sûr que l’IP transmise vient bien du frontend?
En faisant confiance seulement aux en-têtes envoyés par l’infrastructure connue (reverse proxy) et pas à ceux provenant directement du client (ex: Postman).
(Essentiellement: filtrage / headers de confiance)
Que se passe-t-il avec un JWT lorsqu’on se déconnecte (logout)?
Pourquoi utiliser un refresh token?
Pour obtenir un nouveau JWT sans redemander le mdp, afin de maintenir une session longue tout en gardant un JWT à courte durée de vie.
Comment invalider tous les JWT?
En changeant la clé signature côté serveur.
Comment invalider le JWT d’un utilisateur précis?
Avec une liste noire (blacklist) ou un identifiant de version stocké côté serveur.
Pourqoi l’utilisation de JWT est complexe en microservices?
Stocker le JWT dans un cookie est-il une mauvaise idée?
Non
Avec les bonnes protections (HTTP-Only, Secure, SameSite), c’est souvent la meilleure solution.
Quel est l’endroit le plus sécuritaire pour stocker un JWT?
Cookie avec:
* HttpOnly = true
* Secure = true
* SameSite = Lax
* Tokens CSRF pour les actions sensibles
Pourquoi le Local Storage est moins sécuritaire?
Parce qu’il est accessible via JavaScript, donc vulnérable au XSS.