Skip to main content

Segurança de APIs

Camada: Arquitetura — Padrões e boas práticas técnicas para o time de desenvolvimento. Aplica-se a: Todas as APIs REST do CRM.


1. Autenticação

  • Nunca use Basic Auth — use padrões consolidados como JWT ou OAuth 2.0.
  • Não reinvente mecanismos de autenticação — use bibliotecas auditadas.
  • Implemente número máximo de tentativas de login e bloqueio temporário após falhas consecutivas.
  • Use criptografia para todos os dados sensíveis em trânsito e em repouso.

2. JSON Web Tokens (JWT)

PráticaDescrição
Secret seguroUse um secret longo e aleatório para dificultar força bruta
Algoritmo no backendNunca extraia o algoritmo do header do token — defina-o fixo no servidor
Expiração curtaDefina TTL (access token) e RTTL (refresh token) o mais curtos possível
Payload mínimoEvite armazenar dados sensíveis no payload do JWT
Tamanho do payloadMantenha pequeno para reduzir overhead nas requisições

3. OAuth 2.0

  • Sempre valide o redirect_uri no servidor.
  • Prefira response_type=code em vez de token (Authorization Code Flow).
  • Use o parâmetro state para prevenir ataques CSRF.
  • Defina escopos padrão e valide o escopo para cada aplicação.

4. Controle de Acesso

  • Implemente rate limiting e throttling para prevenir DDoS e força bruta.
  • Use HTTPS obrigatoriamente — nunca exponha endpoints em HTTP puro.
  • Configure o cabeçalho HSTS com SSL para prevenir ataques de downgrade.
  • Desative a listagem de diretórios no servidor web.
  • APIs privadas (admin, super admin) devem ser acessíveis apenas de IPs autorizados (allowlist).

5. Validação de Entrada

  • Valide e sanitize todos os inputs antes de processar.
  • Verifique se todos os endpoints estão protegidos por autenticação.
  • Evite expor IDs numéricos sequenciais em URLs — prefira UUIDs.
  • Desative a análise de entidades XML se não for necessária (prevenção de XXE).
  • Desative expansão de entidades em XML, YAML e formatos similares.
  • Use CDN para uploads de arquivos — nunca processe uploads diretamente no servidor da API.
  • Evite bloqueios HTTP ao processar grandes volumes de dados.
  • Certifique-se de que o modo debug está desativado em produção.

6. Cabeçalhos de Resposta (Saída)

CabeçalhoValor recomendadoFinalidade
X-Content-Type-OptionsnosniffPrevine sniffing de MIME type
X-Frame-OptionsdenyPrevine clickjacking
Content-Security-Policydefault-src 'none' (base)Previne XSS e injeção de conteúdo
x-powered-byRemoverElimina fingerprinting do servidor
  • Force o Content-Type correto em todas as respostas.
  • Nunca retorne dados sensíveis (senhas, tokens, chaves de API) nas respostas.
  • Retorne códigos HTTP adequados para cada operação (200, 201, 400, 401, 403, 404, 422, 500).

7. Monitoramento

  • Centralize logs de todos os serviços e componentes.
  • Use agentes para monitorar todas as requisições, respostas e erros.
  • Configure alertas para canais relevantes (Slack, e-mail, PagerDuty).
  • Nunca registre dados sensíveis nos logs (senhas, tokens, CPF, cartão).
  • Implemente IDS/IPS para detectar padrões de ataque em tempo real.

8. CI/CD e Qualidade

  • Audite design e implementação com testes unitários e de integração.
  • Use revisão de código obrigatória — proíba auto-aprovação.
  • Execute análise de segurança estática (SAST) continuamente no pipeline.
  • Verifique dependências em busca de vulnerabilidades conhecidas (Snyk, Dependabot).
  • Projete uma estratégia de rollback para toda implantação em produção.