Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk5 min

Check the Record, Not Just the Route: Object-Level Authorization

Endpoint access is not access to every record it names. Check authorization for the caller, action, and specific object on every relevant path.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A user’s permission to call an endpoint does not mean they can access every record named in the request. For each operation, the server must check whether the authenticated caller may perform that action on that specific object. Without that check, changing an ID can expose or alter someone else’s data.

What object-level authorization checks

Route or function authorization asks, “May this caller invoke this operation?” Object-level authorization asks, “May this caller perform this action on this particular resource?” Both decisions matter, and neither replaces the other.

As an Amazon Associate I earn from qualifying purchases.

For example, an authenticated user may be allowed to call GET /documents/{id}. If the handler retrieves whichever document ID arrives without checking the caller’s rights to that document, a user who changes the ID may read another person’s record. Similar gaps can affect updates, deletions, exports, and administrative workflows. OWASP discusses this class of flaw as Insecure Direct Object Reference (IDOR) and Broken Object Level Authorization (BOLA), including in its API Security Top 10 API1:2023 guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The identifier can be a database key, filename, account number, slug, UUID, GraphQL node ID, or a reference nested in a URL or request body. A complicated or unpredictable ID may make guessing harder, but it does not grant permission or replace a server-side access check.

How to make the authorization decision

Use the identity established by the server’s authentication process, then evaluate the requested action against the actual object and the relevant policy context. Depending on the application, that context may include tenant, ownership, relationships, role, or other attributes. A check that compares a session user ID with one request parameter is not a general solution: access may depend on sharing, membership, delegation, or other relationships.

  1. Establish the caller. Use trusted, server-established identity rather than an identity or privilege asserted in an untrusted request field.
  2. Identify the effective action and object. Resolve the resource the operation will actually read or change, including references nested in the request.
  3. Evaluate the applicable policy. Decide whether this caller may perform this action on this object in its relevant tenant, ownership, relationship, and contextual setting.
  4. Enforce the decision on every object operation. Apply the check to each path that can view, create in relation to, update, delete, export, or administer the resource.

A data lookup scoped to the caller’s permitted records can help prevent an unauthorized record from being returned accidentally. The scope must still reflect the application’s real access rules; it should not assume that every permitted object is directly owned by the current user. Keep enforcement close enough to the protected resource that it can evaluate the object and action actually used.

Rank #2
Sale
The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws
  • Comes with secure packaging
  • It can be a gift item
  • Easy to read text

Choose a model that matches the access rules

Authorization models are ways to express policy, not substitutes for enforcing it. OWASP’s Authorization Cheat Sheet notes that ABAC and ReBAC are often better suited to fine-grained object-level or contextual rules, while RBAC can fit simpler, coarser-grained access. A design can combine them—for example, a role may grant access to a feature while a relationship or attribute determines which records the caller can use.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Model Decision basis When it can fit
RBAC Permissions assigned to roles Access is largely determined by a person’s application role and rules are relatively coarse-grained.
ABAC Attributes of the subject, object, environment, and policy Access depends on object details or context, such as time, device, location, or training status.
ReBAC Relationships between users and resources Access depends on connections such as creating a post or belonging to a resource’s sharing circle.

Before choosing, consider whether access mainly follows roles or per-object ownership and sharing; whether contextual attributes affect decisions; and how the team will manage policy complexity, role growth, review, and testing.

Test horizontal and vertical access separately

Horizontal testing checks whether one user can access another user’s or tenant’s objects. Vertical testing checks whether a lower-privilege user can perform a function reserved for a higher-privilege role. Passing one does not establish the other: an object permission check does not grant an administrator-only function, and a function permission check does not authorize access to every object.

  1. Create at least two accounts, or accounts in separate tenants, with the same kind of object.
  2. Authenticate as one account and substitute a reference to the other account’s object.
  3. Repeat with read and write operations, including GET, PUT, PATCH, and DELETE where supported.
  4. Cover other paths that consume object references, including creation, exports, nested resources, and administrative operations where present.
  5. Repeat for every object type and relevant endpoint. A check on a read route does not establish that a neighboring update route is safe.
  6. Separately attempt administrator-only functions as a lower-privilege user, including cases where that user is authorized for the specific object.

OWASP’s REST Assessment Cheat Sheet summarizes the cross-account approach: “Run the swap test: create the same kind of object with two accounts or tenants, then replay each request under the other session’s identifiers.”

Apply the same rule to GraphQL

GraphQL can expose objects through direct node fields, nested edges, query resolvers, and mutations. Check permissions at both edges and nodes, and evaluate access to every object a request asks to view or change. Hiding a schema field or removing one direct lookup may reduce exposure, but does not secure the other paths that can return or mutate the same data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Do not rely on a gateway or policy engine alone

A gateway or proxy can enforce coarse rules, but its presence does not automatically cover direct service access, internal calls, alternate endpoints, or routing changes that affect which resource a request reaches. Keep enforcement near the protected resource, or ensure downstream services validate trusted authorization context against the actual action and object. If a proxy sets trusted headers, strip client-provided copies before setting them; re-evaluate authorization when routing changes the effective resource or action.

A policy engine such as Open Policy Agent (OPA) can separate policy decisions from application enforcement and integrate with services, gateways, or other infrastructure. The application must still provide trustworthy context and enforce the decision for the correct action and object. OPA’s API documentation states that authentication and authorization default to off, so operators need to configure them if the API is exposed.

Keep authorization coverage current

Maintain an authorization matrix that maps features and logical roles; where useful, include business records to represent data-level filtering. Automate checks against that matrix and rerun them when features, roles, data paths, or policies change. OWASP’s Authorization Testing Automation Cheat Sheet describes this matrix-based approach.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.