Server-side authorization на всяка object/function request
Authorization се проверява на trusted backend за всяка операция.
Какво е
Authorization се проверява на trusted backend за всяка операция.
Как работи
Server-ът не приема, че object ID, role или UI state означават право на достъп.
Най-простият BOLA пример
API: GET /api/invoices/4812
Потребителят сменя 4812 на 4813. Ако backend-ът проверява само „user logged in“, но не и „има ли този user право върху invoice 4813“, имаме BOLA/IDOR.
Важното
Скриването на ID в UI, UUID вместо integer или WAF signature не решават authorization.
Как да проверим
Автоматизирайте negative tests:
- user A чете object на user B;
- basic user извиква admin function;
- user променя server-controlled fields;
- tenant A достъпва tenant B.
Практическа имплементация
- Central authorization layer.
- Object ownership checks.
- Function-level policy.
- Negative authorization tests.
- Default deny.
Какво НЕ решава
Лошо проектирани permission models остават уязвими дори при наличие на checks.
Предпазва най-силно от
- Broken Function-Level Authorization (BFLA) · Web приложения и браузърни атаки
- Broken Function-Level Authorization (BFLA) · API и business-logic атаки
- Broken Object Level Authorization (BOLA) · API и business-logic атаки
- Broken Object Property-Level Authorization (BOPLA) · API и business-logic атаки
- Insecure Direct Object Reference (IDOR) / BOLA · Web приложения и браузърни атаки
- Mass Assignment / Broken Object Property-Level Authorization · Web приложения и браузърни атаки
- Unrestricted Access to Sensitive Business Flows · API и business-logic атаки