Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

É seguro usar localStorage para guardar token JWT?

Olá.

Na aula "2 - JWT e TokenService" do curso de "Angular: trabalhando com Tokens JWT" foi abordado como realizar a autenticação do usuário nas páginas.

Meu ponto é, guardar um token JWT no localStorage não compromente a segurança da aplicação? Pergunto pois sei que o localStorage pode ser facilmente acessado.

Dito isso, qual a forma recomendada de guardas meus tokens com segurança?

1 resposta
solução!

Olá Washington, tudo bem?

Guardar tokens JWT no localStorage pode trazer riscos de segurança, pois ele é acessível por qualquer script executado na mesma origem, inclusive em casos de ataques XSS.

O sessionStorage reduz um pouco o risco por ter um tempo de vida menor (os dados são apagados ao fechar a aba), mas ainda não resolve o problema de XSS.

Uma alternativa mais segura é armazenar o token em cookies com as flags HttpOnly e Secure. Assim, o cookie não pode ser acessado via JavaScript (mitigando XSS) e só é enviado em conexões HTTPS. A flag SameSite ajuda a prevenir requisições cross-site. Essa abordagem, porém, exige configuração adequada no backend.

Exemplo:

res.cookie('token', jwtToken, {
  httpOnly: true,
  secure: true,
  sameSite: 'Strict',
});

Não existe solução perfeita: a melhor escolha depende do contexto e dos requisitos de segurança da aplicação.

Espero ter ajudado. Conte com nosso apoio!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado