JWT Flashcards

(19 cards)

1
Q

Quelles sont les 3 parties d’un JWT?

A
  1. Header: type et algorithme de signature
  2. Payload/Body: données du jeton
  3. Signature: assure l’intégrité du contenu
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

À quoi sert la signature dans un JWT?

A

À garantir que le token n’a pas été modifié et provient bien du serveur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Où peut-on sotkcer le JWT dans le navigateur?

A
  1. Cookies
  2. Local storage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelle est la différence principale entre cookie et local storage pour JWT?

A
  • Cookie: envoyé automatiquement à chaque requête et peut être HTTP-Only
  • Local Storage: accessible en JavaScript et vulnérable au XSS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qu’arrive-t-il si quelqu’un vole notre JWT?

A

Il peut se faire passer par l’utilisateur tant que le token est valide.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Comment peut-on voler un JWT?

A
  • Avec une attaque XSS
  • En interceptant le réseau si pas de HTTPS
  • Dans le stockage non sécurisé (local storage, cookies sans protections)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quelles sont 2 protections de base contre les JWT volés?

A
  1. Expiration courte du token
  2. Associer le JWT à l’adresse IP du client
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Pourqoi ajouter un timestamp dans le JWT?

A

Pour réduire la fenêtre de temps d’exploitation en cas de vol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Pourqoi ajouter l’adresse IP dans le JWT?

A

Pour empêcher son utilisation depuis une autre machine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Pourqoi ne pas utiliser l’adresse MAC dans le JWT?

A

Parce qu’elle n’est pas accessible au serveur via HTTP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Comment le backend peut être sûr que l’IP transmise vient bien du frontend?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que se passe-t-il avec un JWT lorsqu’on se déconnecte (logout)?

A
  1. On ne peut pas l’invalidé directement
  2. On attend son expiration ou on gère une liste de jetons révoqués côté serveur
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Pourquoi utiliser un refresh token?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Comment invalider tous les JWT?

A

En changeant la clé signature côté serveur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Comment invalider le JWT d’un utilisateur précis?

A

Avec une liste noire (blacklist) ou un identifiant de version stocké côté serveur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Pourqoi l’utilisation de JWT est complexe en microservices?

A
  • Les services doivent partager l’état de révocation
  • Le JWT est normalement stateless
17
Q

Stocker le JWT dans un cookie est-il une mauvaise idée?

A

Non
Avec les bonnes protections (HTTP-Only, Secure, SameSite), c’est souvent la meilleure solution.

18
Q

Quel est l’endroit le plus sécuritaire pour stocker un JWT?

A

Cookie avec:
* HttpOnly = true
* Secure = true
* SameSite = Lax
* Tokens CSRF pour les actions sensibles

19
Q

Pourquoi le Local Storage est moins sécuritaire?

A

Parce qu’il est accessible via JavaScript, donc vulnérable au XSS.