Este artigo faz parte do guia completo de segurança de APIs.
Definição
BOLA (ou IDOR, no vocabulário clássico) acontece quando a API aceita um identificador enviado pelo cliente e devolve o objeto correspondente sem checar se aquele usuário tem permissão sobre ele.
Exemplo típico: `GET /api/pedidos/1234`. Se a API apenas busca o pedido 1234 pelo banco e devolve, trocar o número passa a revelar pedidos de outras pessoas.
Por que é tão comum
Porque é fácil confiar no front-end. A tela já esconde o botão, então assume-se que o backend está protegido. Só que qualquer cliente pode chamar a API diretamente.
E porque a falha é silenciosa: a resposta volta com status 200 e dados válidos. Nada dispara alerta, nada quebra — o vazamento só aparece quando alguém o explora em escala.
Como corrigir
A correção é sempre no servidor, no ponto em que o objeto é acessado: verificar a posse ou a permissão do usuário autenticado sobre aquele recurso, para cada requisição.
Evite confiar em identificadores previsíveis (números sequenciais). Identificadores opacos ajudam, mas não substituem a checagem de autorização.
- Checar autorização por objeto em TODAS as rotas que retornam dados.
- Não confiar em IDs enviados pelo cliente sem validar a posse.
- Cobrir também operações de escrita, não só leitura.
- Automatizar testes de autorização com dois usuários distintos.
Como testar
Testar BOLA exige ao menos dois usuários com acessos diferentes: acessar um recurso do usuário A usando o token do usuário B e verificar se a API bloqueia. Sem isso, a falha passa despercebida.
Perguntas frequentes
BOLA e IDOR são a mesma coisa?
São essencialmente o mesmo problema de autorização por objeto; BOLA é o nome usado pelo OWASP para o contexto de APIs.