
Основа для размышления
OWASP API Security Top 10 описывает риск нарушения авторизации на уровне объекта: приложение должно проверять полномочия пользователя для конкретного объекта.
OWASP API1:2023 — Broken Object Level Authorization
Далее — редакционный разбор и практические рекомендации Virusologia.
Проблема: один ответ не описывает правило
Экран, скрывший кнопку, и ответ сервера 403 ещё не описывают все роли, организации и маршруты. Отдельно важно понимать, кому принадлежит объект и какое действие должно быть разрешено или запрещено. Без этого одинаковые ответы могут означать как корректную защиту, так и ошибочный тест.
Решение: матрица доступа
До проверки согласуйте scope и используйте принадлежащие заказчику тестовые учётные записи и объекты. Для каждой роли и организации запишите ожидаемые действия: собственный объект, объект организации, чужой объект и административная операция. Проверьте положительные и отрицательные сценарии, не обращаясь к чужим данным.
Доказательство вместо предположения
Сравните контрольный результат владельца с результатом другой разрешённой тестовой роли; документируйте условия и время. Для разрешённых изменяющих действий в лаборатории проверьте состояние до и после: отказ в интерфейсе сам по себе не гарантирует, что сервер ничего не изменил.
Где заканчивается уверенность
Если нет второй роли, тестового объекта или спецификации, укажите этот пробел в отчёте. Отсутствие найденных нарушений при неполной матрице не означает доказанной изоляции. Повторите проверку после исправления при сопоставимых условиях.
Пример матрицы ожиданий
Identity Object Expected
Owner own record allow
Tenant B user Tenant A record deny
Viewer admin operation deny
Record: scope, test identity, object owner, result, evidence, limitation.