Hello, you are using an old browser that's unsafe and no longer supported. Please consider updating your browser to a newer version, or downloading a modern browser.

Glossary > Insecure Direct Object References IDOR

What is Insecure Direct Object References IDOR?

Understanding Insecure Direct Object References IDOR

Insecure Direct Object References (IDOR) let attackers manipulate references to objects—like user IDs, file names, or database keys—bypassing authorization checks to access data or operations. For instance, changing a URL from `/profile?user=123` to `user=124` might yield another user’s data. Common in poorly designed APIs, IDOR arises when authorization logic is absent or incomplete, assuming a user will only request objects assigned to them. Preventing IDOR requires robust access control verifying each request. Techniques include using mapped references (token in the front-end => real ID in server logic), verifying ownership on every request, or scoping object access to authenticated user sessions. Attackers test sequential or predictable IDs, seeking beneficial or sensitive results. Implementation pitfalls include partial coverage of hidden endpoints or ignoring any parameter not displayed in the UI. By systematically checking that each object belongs to the current user or role, IDOR can be prevented. Tools like Burp Intruder quickly find IDOR issues in batch. As organizations adopt RESTful APIs or microservices, IDOR checks become crucial. The principle of “never trust client-side constraints” helps maintain consistent server-side validations, ensuring no direct object reference is used without verifying proper authorization.

Learn More About Insecure Direct Object References IDOR: