Erros de segurança do JWT e como evitá-los

JWT é poderoso para autenticação de API, mas muitos incidentes de produção vêm de erros de implementação, não do próprio JWT. Se seu aplicativo usar tokens de acesso, tokens de atualização e declarações de função, sua segurança dependerá dos detalhes.
1) Aceitando qualquer algoritmo
Nunca confie no algoritmo enviado apenas pelo cabeçalho do token. Seu servidor deve impor uma lista de permissões explícita (por exemplo, apenas RS256).
- Pin algoritmos esperados no lado do servidor.
- Rejeitar tokens com falta ou inesperado
alg. - Use bibliotecas JWT maduras e mantidas ativamente.
2) Tokens de acesso de longa duração
Se um token de acesso vazar e permanecer válido por dias, o invasor terá muito tempo. Mantenha os tokens de acesso de curta duração e confie no fluxo de atualização.
- Token de acesso: TTL curto (5-15 minutos).
- Token de atualização: TTL mais longo + rotação + revogação.
- Invalidar sessões em atividades suspeitas.
3) Vazamento de tokens em URLs e registros
Nunca coloque JWTs em parâmetros de consulta. Os URLs acabam em registros, análises, histórico do navegador e referenciadores.
- Enviar tokens em
Autorização: Portador ...cabeçalho. - Elimine cabeçalhos de autenticação de logs e rastreamentos de APM.
- Mascarar campos confidenciais no relatório de erros do cliente.
4) Validação de reivindicação fraca
Validar iss, aud, exp, nbf e iat. Verifique também as restrições de negócios, como ID do locatário e funções necessárias.
- Rejeite tokens expirados ou ainda não válidos.
- Vincular público esperado por serviço.
- Não confie em declarações de função sem verificações do lado do servidor.
5) Nenhuma estratégia de rotação de chave
Vazamento de chaves, certificados expiram e incidentes acontecem. Planeje a rotação antes do lançamento da produção.
- Use cabeçalhos
kide pontos de extremidade JWKS. - Suporta chaves sobrepostas durante janelas de rotação.
- Monitore falhas de validação de assinatura em busca de anomalias.
Lista de verificação prática de endurecimento
- Aplicar lista de permissões de algoritmo estrito.
- Use tokens de acesso de curta duração.
- Rotate tokens de atualização e suporte à revogação.
- Armazene tokens com segurança (prefira cookies httpOnly).
- Validar todas as declarações padrão e críticas para os negócios.
- Implementar rotação de chave com monitoramento.
Ferramentas relacionadas
- Decodificador JWT — inspeciona o cabeçalho e a carga útil com segurança.
- Gerador de hash — verifica impressões digitais de mensagens e arquivos.
- Gerador de senha — crie segredos fortes para contas de administração e de serviço.