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 / Broken object property level authorisation

Knowledge hub

Broken object property level authorisation

Seeing or changing single fields of a record that you should not.

Illustration explaining Broken object property level authorisation

What it means

Broken object property level authorisation, or BOPLA, is when an API correctly lets you reach a record but does not check which fields of it you may read or change. You may see your own order, but not the internal cost field, and you may edit your address, but not your price tier.

It is number three in the OWASP API Security Top 10 for 2023. It joins two older entries: excessive data exposure on the reading side and mass assignment on the writing side. Both sides have the same cause: the API trusts the shape of the record, not the person asking.

Why it matters

The record check passes, so ordinary testing says access control is working. Yet a customer can read another field they should not, such as a hidden flag or someone's personal details, or can write one, such as their own role or balance.

Writes cause the worst cases. Sending an extra field like isAdmin or credit in a request can change data the form never offered. Reads cause quiet leaks of personal data through fields that the interface hid but the API still sent.

How it shows up

You meet it in APIs that convert whole database records to responses and requests straight into records, often through automatic mapping in a framework. Look at what the response contains compared with what the screen shows, and at which fields a request can set that the form did not include. Related checks sit under object-level authorisation.

The fix is explicit: define which fields each role may read and which it may write, and use separate input and output shapes instead of the database model. Test with extra fields, with fields of other roles, and with a lower-privilege account against the same record.

Questions people ask

Broken object property level authorisation, answered

How is BOPLA different from BOLA?

BOLA is about reaching a record that belongs to someone else. BOPLA is about the fields inside a record you may legitimately reach. Both need testing.

How does it relate to mass assignment?

Mass assignment is the write side of it: a request sets fields the user should not control. OWASP merged it with excessive data exposure to form BOPLA in 2023.

Can the front end hide fields instead?

No. Hiding a field in the interface does not stop the API sending it or accepting it. Anyone using the API directly sees the full request and response.

How do we test for it?

Compare API responses with what the screen shows, add unexpected fields to update requests, and repeat with accounts of different roles. Check the stored record afterwards.

What is the fix?

Use explicit allowlists of fields per role for reading and writing, with separate data shapes for input and output, and keep checks on the server.

Cyberlop mark

Which fields can you reach?

Field-level access is tested on the running app by comparing what each signed-in account can read and set, and each finding carries the request and response that proved it. 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.