Insecure direct object reference (IDOR) is a type of access control vulnerability in digital security.[1]

This can occur when a web application or application programming interface uses an identifier for direct access to an object in an internal database but does not check for access control or authentication. For example, if the request URL sent to a web site directly uses an easily enumerated unique identifier (such as https://example.com/document/1234), this can provide an exploit for unintended access to all records.

A directory traversal attack is considered a special case of an IDOR.[2]

The vulnerability is of such significant concern that for many years it was listed as one of the Open Web Application Security Project's (OWASP) Top 10 vulnerabilities.[3]

Consecutive IDs can be changed into dark keys using several techniques.[4]

Examples

edit

In November 2020, the firm Silent Breach identified an IDOR vulnerability with the United States Department of Defense website and privately reported it via the DOD's Vulnerability Disclosure Program. The bug was fixed by adding a user session mechanism to the account system, which would require authenticating on the site first.[5]

It was reported that the Parler social networking service used sequential post identifiers, and that this had enabled the scraping of terabytes of data from the service in January 2021. The researcher responsible for the project has said that this was inaccurate.[6][7]

References

edit
  1. ^ "Insecure direct object references (IDOR) | Web Security Academy". portswigger.net. Retrieved 2021-01-12.
  2. ^ Karande, Chetan. "Securing Node Applications – 4. Insecure Direct Object References". O'Reilly. Retrieved 2021-01-12.
  3. ^ Solomon, Howard (2021-01-12). "Common development error likely led to huge Parler data theft, says expert". Financial Post. Retrieved 2021-01-12.
  4. ^ Contieri, Maximiliano (2025-05-17). "Refactoring 028 – Replace Consecutive IDs with Dark Keys". Clean Code Cookbook. Retrieved 2025-05-17.
  5. ^ Cimpanu, Catalin. "Bug hunter wins 'Researcher of the Month' award for DOD account takeover bug". ZDNet. Retrieved 2021-01-12.
  6. ^ Greenberg, Andy (January 12, 2021). "An Absurdly Basic Bug Let Anyone Grab All of Parler's Data". Wired. Archived from the original on January 12, 2021. Retrieved January 12, 2021.
  7. ^ @donk_enby (January 30, 2021). "also a lot of the news coverage claimed the post IDs were sequential. they were not, but: https://github.com/d0nk/parler-tricks/blob/main/parler/conversion.py#L22 (this endpoint only existed in their iOS app and afaik wasn't actually used for anything)" (Tweet). Archived from the original on January 30, 2021. Retrieved February 12, 2021 – via Twitter.

📚 Artikel Terkait di Wikipedia

Directory traversal attack

The working directory is another possible attack vector. Insecure direct object reference "Zip Slip Vulnerability". Snyk. The vulnerability is exploited

Direct Rendering Infrastructure

DRI3 gets rid of the old insecure GEM buffer sharing mechanism based on GEM names (global GEM handles) for passing buffer objects between a DRI client and

Direct Rendering Manager

The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that

Outline of the Java programming language

overview of and topical guide to Java: Java is a general-purpose, concurrent, object-oriented, class-based, strong, and statically typed programming language

Attachment theory

system—or, more recently, internal working model—the relative security or insecurity of which influences characteristic patterns of behavior when forming future

Female gaze

Mr. Darcy's love confession. The direct camera angle allows the audience to know what it may feel like to be the object of his gaze. To address the rise

Michael (2026 film)

forced to continue touring with his brothers on the Triumph Tour. Feeling insecure about his appearance and developing vitiligo, Michael undergoes a rhinoplasty

Pointer (computer programming)

"Ambiguities and Insecurities in Pascal," Software: Practice and Experience 7, pp. 685–696 (1977) Free Pascal Language Reference guide, section 3.4