TGViewer
Нагрузим IT! Нагрузим IT! @lets_load · 315 subscribers
Post #321 131
🔐Роли и права: как тестировать доступ

Привет, коллеги 👨‍🦯

Если у пользователя, не обладающего нужными правами, нет кнопки «Удалить», значит, всё безопасно, так ведь? 😗

Не совсем 😅

Пользователь может открыть прямую ссылку, отправить запрос через DevTools или найти старую вкладку. И вот тут-то и нужно проверять доступы.

Представьте офис с пропусками.

- Гость может пройти на ресепшен.
- Сотрудник в рабочую зону.
- Бухгалтер в бухгалтерию. -Админ почти везде.

Но если стажёр смог открыть сейф с договорами и драгоценностями, у нас проблемы 🤦‍♀

В сервисах логика такая же:
• роль = кто пользователь: админ, менеджер, клиент, гость

• права = что ему можно: смотреть, создавать, редактировать, удалять, экспортировать

Это относится к авторизации.

Что проверять тестировщику:
• Видит ли роль нужные разделы, кнопки и данные
• Не видит ли лишнего
• Что будет, если открыть запрещённый раздел по прямой ссылке
• Что будет, если отправить API-запрос руками
• Можно ли увидеть чужие данные: заказ, профиль, счёт, документ
• Можно ли создать, изменить или удалить то, что нельзя
• Что происходит после смены роли
• Работает ли старая сессия после понижения прав
• Возвращается ли корректная ошибка о недоступности (401 или 403)
• Не даёт ли функция экспорт скачать больше, чем нужно

Удобный способ: сделать мини-матрицу.

роль × действие × объект.

Например:
☑️ менеджер + удалить + чужой заказ = нельзя.

☑️ админ + изменить + настройки = можно.

☑️ гость + открыть + личный кабинет = нельзя.


Главная мысль простая: проверяйте не только интерфейс. Проверяйте, что действие РЕАЛЬНО запрещено на сервере.

А вы уже ловили баги, где кнопки нет, а действие всё равно выполняется? 👇

⚡️ Подписаться

#Практика
  • ⚡ 1
More from @lets_load
  1. Aug 27, 2026Инстанс: экземпляр чего именно? «Поднимите ещё один инстанс» звучит как проведение обряда…
  2. Aug 25, 2026JSON вырос из XML? Не совсем. 😟 Есть устойчивое заблуждение, что Json пришел на замену XM…
  3. Aug 24, 2026Как я настроил ChatGPT для английского 😮 В прошлом посте я обещал показать свою схему. Вы…
  4. Aug 21, 2026Свой учебный API. С блэкджеком и… тестами 😗 Про блэкджек шутка. А API хочу сделать настоя…
  5. Aug 20, 2026Компилятор и интерпретатор: в чём разница? 👀 Компилятор и интерпретатор оба стоят между и…
  6. Aug 19, 2026Post #411
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →