Skip to content

Token Leakage

O vazamento de tokens (Token Leakage) ocorre quando segredos da aplicação, como JWTs, chaves de API ou tokens de sessão, são expostos involuntariamente a terceiros.

Vetores Comuns de Vazamento

  1. URLs (Cabeçalho Referrer): Enviar um token via parâmetro de busca (query string) faz com que ele vaze se o usuário clicar em um link externo ou se a página carregar recursos de terceiros.
  2. Logs de Console: Esquecer console.log(token) em produção permite que qualquer pessoa com acesso físico ao computador ou via scripts maliciosos leia o token.
  3. Logs de Servidor e Proxies: Tokens na URL ficam registrados em logs de servidores Nginx, Apache e proxies de rede.
  4. Erros de Aplicação: Exibir o payload completo de uma requisição que falhou (contendo o cabeçalho Authorization) em uma interface de erro.

Como fazer vs Como não fazer

✅ Como fazer

  • Envie tokens de autenticação exclusivamente via cabeçalhos HTTP (ex: Authorization: Bearer <token>) ou Cookies seguros.
  • Remova todos os logs de console da aplicação antes de realizar o deploy para produção (utilize plugins de build para automatizar isso).
  • Configure a Referrer-Policy correta para evitar o envio de URLs completas para outros domínios.
  • Utilize variáveis de ambiente para gerenciar chaves de API durante o desenvolvimento e build.

❌ Como não fazer

  • Jamais coloque tokens ou senhas na URL (query params).
  • Não faça commit de arquivos que contenham segredos (como .env) no controle de versão (Git).
  • Não exiba mensagens de erro técnicas detalhadas para o usuário final que possam conter payloads de rede ou segredos da aplicação.