Makrosites

Suas ideias em realidade digital!

Como armazenar JWT com segurança: cookie httpOnly ou localStorage?

Como armazenar JWT com segurança: cookie httpOnly ou localStorage?

Onde armazenar JWT com segurança?

Depois de implementar login com JWT, surge uma dúvida comum: onde armazenar o token no front-end?

As opções mais usadas são:

Cada uma tem vantagens e riscos.


1) localStorage (mais comum, mas perigoso)

É simples e funciona bem:

localStorage.setItem("token", jwt);

Mas o problema é o XSS (Cross-Site Scripting). Se seu site tiver uma falha de XSS, um atacante pode executar:

localStorage.getItem("token");

E roubar o token.

Risco

---

2) sessionStorage

Funciona igual ao localStorage, mas o token é apagado ao fechar o navegador.

sessionStorage.setItem("token", jwt);

Ainda sofre com XSS.

---

3) Cookie httpOnly (mais seguro)

O cookie httpOnly não pode ser acessado via JavaScript.

 time()+900,
  "path" => "/",
  "secure" => true,
  "httponly" => true,
  "samesite" => "Lax"
]);

Vantagens

Desvantagens

---

JWT + CSRF: cuidado importante

Se usar cookie, você precisa proteger contra CSRF.

Exemplo simples de proteção CSRF

---

Resumo comparativo

Armazenamento XSS CSRF Recomendado?
localStorage ❌ Vulnerável ✔️ Não sofre CSRF ⚠️ Só se não puder usar cookie
sessionStorage ❌ Vulnerável ✔️ Não sofre CSRF ⚠️ Melhor que localStorage
Cookie httpOnly ✔️ Protegido ⚠️ Precisa proteção ✅ Recomendado
---

Conclusão

Para aplicações web modernas:

  • Use access token curto
  • Guarde refresh token em cookie httpOnly
  • Implemente proteção CSRF
  • Use HTTPS sempre

Evite armazenar JWT sensível em localStorage se segurança for prioridade.