APIs são a parte mais exposta da sua aplicação: públicas por design, documentadas por conveniência e muitas vezes a última coisa a ser testada. Este checklist transforma o OWASP API Security Top 10 em controles concretos para rodar antes de cada release.

1. Autenticação

  • Todo endpoint não público rejeita requests sem token (401).
  • Tokens expirados ou adulterados são rejeitados; assinatura e expiração do JWT validadas no servidor.
  • Nenhum endpoint aceita credenciais na URL ou query string.

OWASP API2: Autenticação quebrada.

2. Autorização (a mais importante)

  • Em nível de objeto: cada request com um ID verifica que o usuário atual é dono do recurso. Trocar o ID para outro usuário deve retornar 403/404, não os dados dele.
  • Em nível de função: rotas de admin rejeitam tokens de usuários normais.
  • Em nível de propriedade: o usuário não pode definir campos protegidos (role, isAdmin) por mass assignment.

OWASP API1 (BOLA), API3, API5 — os riscos mais explorados.

    // O controle BOLA que todo endpoint precisa
const order = await db.order.findFirst({
  where: { id: params.id, userId: session.user.id },
})
if (!order) return new Response(null, { status: 404 })

3. Rate limiting

  • Login, signup, reset de senha e pagamentos são limitados.
  • A paginação tem teto; o tamanho do body é limitado.

OWASP API4: Consumo de recursos sem restrição.

4. Validação de input

  • Todo input é validado no servidor contra um schema.
  • Acesso ao banco com queries parametrizadas ou ORM — nunca SQL montado com strings.

5. Segredos e configuração

  • Nenhum segredo no cliente nem em .env commitados; rotacione qualquer chave exposta.
  • Se usar Supabase, RLS ativado em cada tabela (veja o guia de RLS).

6. Transporte e headers

  • HTTPS e HSTS; CORS restrito a origens conhecidas.
  • Headers de segurança: CSP, X-Content-Type-Options, X-Frame-Options.

Automatize o checklist

O Nurbak escaneia seu app publicado em busca desses problemas e retorna um relatório priorizado; o Nurbak Watch monitora as taxas de erro por endpoint e alerta em segundos diante de um ataque em curso.

Artigos relacionados