← Back to list

IDOR: o que é, como ocorre, riscos associados e formas de mitigação

IDOR é uma vulnerabilidade onde um atacante pode modificar um objeto presente na aplicação por meio de URLs ou parâmetros e obtêm acesso a…

newe · 2026-06-01 16:59 · 0 claps · 2.2 min read
#idor #idor-vulnerability #vulnerability #web-development #pentesting
Open on Medium ↗
Wiki topics: 🌐 · Web Development 🔒 · Cybersecurity

IDOR: o que é, como ocorre, riscos associados e formas de mitigação

IDOR é uma vulnerabilidade onde um atacante pode modificar um objeto presente na aplicação por meio de URLs ou parâmetros e obtêm acesso a informações de outros usuários da aplicação.

Tome como exemplo a seguinte URL:

http://localhost:3000/profile/user/1

O objeto referenciado trata-se de uma Primary Key (id) presente no banco de dados da aplicação, ela é responsável por identificar os usuários internamente na aplicação.

Abaixo, podemos visualizar um usuário e suas correspondentes informações.

Usuário acessando seus dados

Usuário acessando seus dados

Ao alterar o objeto na URL em questão, incrementando um, a aplicação retorna as informações do usuário correspondente a aquele ID.

Usuário acessando os dados de outro usuário

Usuário acessando os dados de outro usuário

Como a vulnerabilidade acontece?

A vulnerabilidade ocorre devido a uma falha no processo de desenvolvimento, onde a aplicação valida a autenticação do usuário (Quem ele é), mas não valida a autorização para acessar certas informações na plataforma.

...
@app.route('/profile/user/<id>' , methods=['GET'])
def profile(id):
    id_usuario = user_info(id)
    if not session.get("logado"):
        return redirect(url_for('login'))

    elif id_usuario is None:
        return render_template('404.html')

return render_template('profile.html', usuario=id_usuario)
...

Como visto no código acima, a função def profile(id) apenas valida a autenticação do usuário para acessar as informações relacionadas ao profile. O que causa a vulnerabilidade no controle de acesso e por aplicação usar objetos como identificadores, torna-se um IDOR.

Para corrigir tal vulnerabilidade, é necessário o controle de acesso não permissivo no acesso aos dados de outros usuários.

…
 @app.route('/profile/user/' , methods=['GET'])
 def profile(id):
 id_usuario = user_info(id)
 if not session.get("logado"):
   return redirect(url_for('login'))

 elif id != session['id']:
     return render_template('403.html') 

elif id_usuario is None:
    return render_template('404.html')
return render_template('profile.html', usuario=id_usuario)
 …

Segue um diagrama funcional da aplicação funcionando corretamente e com a vulnerabilidade presente.

Fluxo da aplicação

Fluxo da aplicação

Cenários

Em alguns contextos o identificador pode mudar para datas, emails, cpfs, nomes de arquivos, é primordial entender o funcionamento da plataforma para identificar vulnerabilidade de IDOR. Todos esses abaixo são possíveis vetores para vulnerabilidade de IDOR.

/api/usuarios?email=joao@empresa.com
/api/pedidos?cpf=12345678900
/api/export?file=relatorio_8891.pdf
/api/messages?conversationId=8821
/api/pedido?id=Q2FsaWRhZGU9MTIz

Impacto

  • Exposição de dados sensíveis do usuário, como nome completo, CPF, endereço, e-mail, telefone, etc.
  • Danos à reputação, caso os dados dos usuários sejam exfiltrados e vendidos
  • Multas regulatórias (LGPD, GDPR)
  • Escalação de privilégios, caso haja a permissão para modificar outros usuários

Mitigação

  • Implementar um controle de autorização validando quais objetos os usuários são capazes de acessar.
  • Usar identificadores complexos (UUIDs) ou não sequenciais como um medida de defesa em profundidade.
  • Evitar a exposição de identificadores em URLs e requisições, utilize as informações de sessão para determinar qual usuário está autenticado.
  • Aplicar verificações de autorização do lado do servidor: Toda solicitação que acessa um objeto deve verificar se o usuário autenticado tem permissão para acessar esse objeto específico. Não confie apenas na autenticação.

Referências

https://cwe.mitre.org/data/definitions/639.html https://portswigger.net/web-security/access-control/idor https://cheatsheetseries.owasp.org/cheatsheets/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet.html


메타데이터
post_id
8b2cfbbe01f1
slug
idor-o-que-é-como-ocorre-riscos-associados-e-formas-de-mitigação-8b2cfbbe01f1
url
https://medium.com/@newe-x/idor-o-que-%C3%A9-como-ocorre-riscos-associados-e-formas-de-mitiga%C3%A7%C3%A3o-8b2cfbbe01f1
canonical_url
https://medium.com/@newe-x/idor-o-que-%C3%A9-como-ocorre-riscos-associados-e-formas-de-mitiga%C3%A7%C3%A3o-8b2cfbbe01f1
author_url
https://medium.com/@newe-x
status
ok
fetched_at
2026-06-17 10:21:25