APIs são a espinha dorsal das aplicações modernas. Aplicações móveis, integrações SaaS, microsserviços e automações industriais dependem de APIs para funcionar. Essa onipresença as torna alvos prioritários nas estratégias ofensivas mais recentes.
O Cenário de Ameaças em APIs
A OWASP API Security Top 10 lista as vulnerabilidades mais críticas: Broken Object Level Authorization, Broken Authentication, Broken Object Property Level Authorization, Unrestricted Resource Consumption, Broken Function Level Authorization, Unrestricted Access to Sensitive Business Flows, Server Side Request Forgery, Security Misconfiguration, Improper Inventory Management e Unsafe Consumption of APIs.
Autenticação e Autorização
1. Use OAuth 2.0 e OpenID Connect
Implemente fluxos OAuth 2.0 adequados ao caso de uso. Nunca armazene tokens em localStorage, prefira cookies HttpOnly com flags Secure e SameSite.
2. JWT: Validar Corretamente
Sempre valide a assinatura do JWT, verifique claims essenciais (exp, iss, aud), use algoritmos assimétricos (RS256, ES256) em produção e implemente token revocation para cenários críticos.
3. Controle de Acesso em Nível de Objeto
Nunca confie em IDs enviados pelo cliente sem validar que o usuário autenticado tem permissão sobre aquele objeto específico. Esse é o tipo de vulnerabilidade mais comum e explorado em APIs REST.
Proteção Contra Ataques
Rate Limiting e Throttling
Implemente limites por IP, por usuário autenticado e por endpoint. Endpoints sensíveis (login, reset de senha, criação de conta) precisam de limites mais restritivos do que endpoints de leitura pública.
Validação de Input
Valide tipo, tamanho, formato e conteúdo de todos os parâmetros recebidos. Use schemas para definir e validar contratos. Nunca passe input do usuário diretamente para queries, comandos shell ou eval.
Criptografia de Dados Sensíveis
Criptografe dados sensíveis em repouso e em trânsito. Retorne apenas os campos que o cliente precisa — nunca exponha dados desnecessários.
Monitoramento e Logging
O que Logar
- Todas as tentativas de autenticação (sucesso e falha)
- Mudanças em dados sensíveis
- Tentativas de acesso negado
- Erros de validação
- Requisições anômalas ou suspeitas
O que NÃO Logar
- Senhas ou tokens de autenticação
- Dados de cartão de crédito
- Informações pessoais identificáveis (PII) em texto claro
- Chaves de criptografia
Conclusão
A segurança de APIs não é um item de checklist, mas um processo contínuo. Adotar práticas de Security by Design, realizar testes regulares e manter visibilidade sobre o inventário de APIs são os pilares para reduzir o risco de forma sustentável.