Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

<a id="security-object-access"></a>

# Object-level authorization

## Коротко

Вход в систему не даёт доступа ко всем записям.

## Плохо

```sql
SELECT * FROM orders WHERE order_id = $1
```

## Хорошо

```sql
SELECT * FROM orders
WHERE order_id = $1 AND tenant_id = $2
```

## Почему

Чужой идентификатор может быть известен или случайно раскрыт.

## Когда применять

tenant_id берётся из проверенного контекста, а не произвольного поля клиента. Для сложных ролей нужен явный механизм политик.

## Как проверить

- Пользователь одной организации не читает и не меняет данные другой?

## Человек

Определяет матрицу доступа к конкретным объектам.

## Агент

Реализует серверные ограничения и проверяет запрещённый запрос наряду с разрешённым.

Контроль результата:

- Пользователь одной организации не читает и не меняет данные другой?

## Источники

- [API1:2023 Broken Object Level Authorization - OWASP API Security Top 10](https://owasp.org/API-Security/editions/2023/en/0xa1-broken-object-level-authorization/)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/security/no-secrets/rules/object-access.md)
