- ограничение доступа к данным для пользователей не прошедших аутентификацию
- ограничение доступа к данным для аутентифицированных, но не обладающих необходимыми привелегиями пользователей
- предотвращение несанкционированного доступа с помощью прямых обращений к API
- фильтрация данных в поисковых запросах и списковых элементах UI (таблицы, списки)
- предотвращение изменения данных, принадлежащих одному пользователю другими пользователями
Сценарии 1-3 хорошо описаны и обычно решаются с помощью встроенных средств фреймворков, например role-based или claim-based авторизации. А вот ситуации, когда авторизованный пользователь может по прямому url получить доступ к данным «соседа» или совершить действие в его аккаунте случаются сплошь и рядом. Происходит это чаще всего из-за того что программист забывает добавить необходимую проверку. Можно понадеяться на код-ревью, а можно предотвратить такие ситуации применив глобальные правила фильтрации данных. О них и пойдет речь в статье.