Broken Access Control é o risco #1 do OWASP Top 10 — com razão. A autenticação pergunta "quem é você?"; o controle de acesso pergunta "você tem permissão para isto?". Quando esse segundo check falta ou está errado, os usuários podem sair de suas permissões, e daí vêm a maioria dos vazamentos sérios.
O que abrange
| Forma | Como se parece |
|---|---|
| Horizontal (IDOR/BOLA) | Acessar dados de outro mudando um ID — veja IDOR |
| Vertical (escalonamento) | Um usuário normal chega a funções de admin |
| Checks de função faltando | Endpoints de admin alcançáveis por qualquer um com a URL |
| Em nível de propriedade | Definir campos que não deveria (role: admin) |
| Manipulação de metadata | Editar um JWT/cookie para elevar acesso |
Como prevenir
- Negue por padrão. Sem acesso a menos que concedido explicitamente.
- Aplique no servidor. Esconder um botão não é controle de acesso; a API deve rejeitar.
- Centralize a lógica numa camada de políticas.
- Limite cada query ao usuário (por ID e dono juntos).
- Mínimo privilégio e teste como o usuário errado.
O Nurbak escaneia sua app por broken access control e o resto do checklist de segurança de APIs.

