Привет, коллеги 👨🦯
Если у пользователя, не обладающего нужными правами, нет кнопки «Удалить», значит, всё безопасно, так ведь? 😗
Не совсем 😅
Пользователь может открыть прямую ссылку, отправить запрос через DevTools или найти старую вкладку. И вот тут-то и нужно проверять доступы.
Представьте офис с пропусками.
- Гость может пройти на ресепшен.
- Сотрудник в рабочую зону.
- Бухгалтер в бухгалтерию. -Админ почти везде.
Но если стажёр смог открыть сейф с договорами и драгоценностями, у нас проблемы 🤦♀
В сервисах логика такая же:
• роль = кто пользователь: админ, менеджер, клиент, гость
• права = что ему можно: смотреть, создавать, редактировать, удалять, экспортировать
Это относится к авторизации.
Что проверять тестировщику:
• Видит ли роль нужные разделы, кнопки и данные
• Не видит ли лишнего
• Что будет, если открыть запрещённый раздел по прямой ссылке
• Что будет, если отправить API-запрос руками
• Можно ли увидеть чужие данные: заказ, профиль, счёт, документ
• Можно ли создать, изменить или удалить то, что нельзя
• Что происходит после смены роли
• Работает ли старая сессия после понижения прав
• Возвращается ли корректная ошибка о недоступности (401 или 403)
• Не даёт ли функция экспорт скачать больше, чем нужно
Удобный способ: сделать мини-матрицу.
роль × действие × объект.
Например:
☑️ менеджер + удалить + чужой заказ = нельзя.
☑️ админ + изменить + настройки = можно.
☑️ гость + открыть + личный кабинет = нельзя.
Главная мысль простая: проверяйте не только интерфейс. Проверяйте, что действие РЕАЛЬНО запрещено на сервере.
А вы уже ловили баги, где кнопки нет, а действие всё равно выполняется? 👇
⚡️ Подписаться
#Практика
