Platform

Platform overview How it works Authorization testing Evidence & reports Private scanning Integrations

Solutions

Security agencies Product teams Regulated industries Partner programme

Learn

Blog Knowledge hub Compare

Resources

Pricing Documentation Help centre FAQ Security & data What we haven’t proved

Company

About Contact Careers Sign in to the platform Start a $199 pilot →

Home / Knowledge hub / IDOR testing

Knowledge hub

IDOR testing

Swapping record ids between two accounts to see whether the app notices.

Illustration explaining IDOR testing

What it means

IDOR testing is the check for insecure direct object references. A tester takes a request that fetches or changes a record, such as GET /invoices/1042, and replays it with an id that belongs to someone else, or with another account's session, to see whether the app notices.

The core of the method is two accounts. Account A owns records, account B is a different customer. If B can read or change A's records, the app has a flaw. If the app answers with a denial, it passed that case.

Why it matters

It is the easiest way to prove cross-customer exposure, and the results are plain: a screenshot of one account showing another account's data. That helps a team agree on severity, and it is the kind of evidence a customer or auditor trusts.

Automated scanners usually miss these flaws, because they cannot tell whose data they are looking at. A manual or logic-aware test is needed, repeated whenever endpoints change, since a new route is a new chance to forget the check. Re-run it whenever a release adds routes.

How it shows up

The test touches every place an id appears: path segments, query strings, request bodies, headers, cookies, GraphQL variables and file download links. Also try each method on the same path, since GET may be guarded while PUT and DELETE are not.

Good testers also look for ids in other places than the obvious one: a list that reveals them, an email link, an export. They test numeric, UUID and encoded ids, and ids in nested objects. A pass means the server refuses for all of these. A fix is a server-side ownership check on every lookup.

Questions people ask

IDOR testing, answered

How many accounts do I need to test IDOR?

At least two ordinary accounts in different organisations, and one privileged account if roles exist. With only one account you can see what is yours but not whether you can see anything else.

Can automated tools do IDOR testing?

Some help by replaying requests with swapped ids, but they need to be told which account owns what. Without that context they report too much or too little.

Do UUIDs prevent IDOR?

No. They make guessing impractical but do not stop access if someone obtains a valid one. The check must be on ownership.

What is the difference between IDOR and BOLA?

The same weakness under two names. IDOR is the older web term, and BOLA is the term used in the OWASP API list.

What should a good report include?

The two accounts, the request, the response showing the other account's data, and the line of code or route that skipped the check. Evidence is what separates a finding from a guess.

Cyberlop mark

Does the app notice a swapped id?

We test your endpoints with separate accounts and swapped identifiers, and each finding comes with the request, the response and a screenshot. Ask us to run it on one of your applications.

Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.