Field-level: директивы/guards на чувствительных полях; object-level: проверка ownership/roles после загрузки сущности (избежать IDOR по чужому id).
Разбор
- Скрытие поля ≠ фильтрация списков.
- Единые policy-модули (CASL/OPA) лучше копипасты.
- Тесты на попытку чтения чужого id.
- Не возвращайте разные ошибки, если это leakage.
Итог
Нужны и field rules, и object-level checks против IDOR.