IDOR (Insecure Direct Object Reference)
O que é?
O IDOR é um tipo de falha de controle de acesso que ocorre quando uma aplicação usa um identificador para acessar um objeto diretamente, mas não verifica se o usuário tem permissão para acessar aquele objeto específico.
Identificação
Esta vulnerabilidade é comumente encontrada quando a aplicação utiliza entradas fornecidas pelo usuário para buscar registros em um banco de dados ou arquivos no sistema.
Onde procurar:
-
Parâmetros de consulta (Query strings) na URL.
-
Corpo de requisições POST/PUT (JSON ou formulários).
-
Headers HTTP.
-
Cookies.
Exemplo de Exploração
Um usuário autenticado acessa suas próprias informações através da URL: https://site.com/api/user/123
O atacante altera o ID numérico para tentar acessar dados de outros usuários: https://site.com/api/user/124 https://site.com/api/user/125
Se a aplicação retornar os dados do usuário 124 ou 125 para o usuário 123, a falha de IDOR está confirmada.
Como Prevenir
A melhor forma de prevenção é implementar um controle de acesso robusto em nível de objeto:
-
Verificação de Autorização: O servidor deve verificar se o usuário autenticado possui permissão explícita para visualizar ou modificar o recurso associado ao ID solicitado.
-
Uso de Identificadores Não-Sequenciais: Utilizar UUIDs (Universally Unique Identifiers) ou hashes aleatórios em vez de números incrementais (1, 2, 3…) dificulta a adivinhação e a enumeração por parte de atacantes.