O OWASP Top 10 (2021) ordena riscos por prevalência em dados agregados de correção e fuzzing. Broken access control assumiu a primeira posição e segue lá na versão de API: o OWASP API Security Top 10 (2023) coloca BOLA no topo. Scanner automatizado pega dependência desatualizada e header faltando. O mesmo scanner não pega o endpoint que devolve pedido alheio quando você troca o ID na URL.

Injection: parametrizar e seguir parametrizando

Consulta parametrizada mata SQL injection: valores viram parâmetros, separados do texto do comando. ORMs resolvem o caso comum e escorregam no cru; um query() com template string reabre a brecha. Injection aparece em LDAP, NoSQL e planilha de fórmula. Feature com LLM traz injection de prompt: texto do usuário vira instrução do modelo. Você separa dados de sistema de dados do usuário e valida a saída contra schema antes de qualquer ação com efeito real.

Broken access control: o teste com dois usuários

Para cada recurso endereçável por ID, você cria dois usuários de teste, autentica como A, lê recurso de A, autentica como B e tenta ler o mesmo recurso. IDOR e BOLA morrem nesse teste. Em multi-tenant, o filtro de tenant vive na camada de dados, em toda consulta; join esquecido entrega linha de outro cliente. Payload gigante sem limite de tamanho e endpoint sem rate limit entram na mesma lista do OWASP API Security, no item 4 e no item 9.

Falhas criptográficas e XSS

Senha guarda em Argon2id ou bcrypt, com custo calibrado no hardware da produção; MD5 ou SHA-256 cru vira tabela rainbow em horas. Dados sensíveis em repouso usam criptografia do provedor cloud e TLS 1.3 em trânsito, com HSTS para travar o protocolo. XSS morre com encode de saída por contexto e Content-Security-Policy restritiva; nonce em script tag alinha CSP com bundle gerado pelo build.

Checklist de quinze minutos

Você fixa cabeçalhos: CSP, HSTS, X-Content-Type-Options: nosniff, frame-ancestors sem origem externa. Liga scan de dependência no CI com falha em vulnerabilidade crítica e scan de secret no repositório. Escreve teste automatizado de access control por endpoint e roda a suíte a cada merge. A OWASP Cheat Sheet Series traz implementação por framework para cada item; o time escolhe um cheat sheet por sprint e fecha um risco real por vez.