Раздел 43 · Автотестирование с нуля

Безопасность для тестировщика: IDOR, права и вредные входные данные

senior~40 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Савва · продакт, #qa-antrakt

Переслал вам письмо зрителя. Человек поменял в ссылке на свой заказ одну цифру и увидел чужой: имя, место, ряд. Говорит, ничего не трогал, просто интересно стало. До «Ночи продаж» месяц. Если такое найдут в ночь, когда покупают сорок тысяч человек, это уже не письмо, а новость. Мы выдержим?

Вера Ланская · лид QA, #qa-antrakt

Безопасность у нас не отдельный отдел, который придёт перед релизом. Это проверки в нашем наборе. Заказ по номеру мы проверяли в блоке про API, а ручек с номером заказа с тех пор стало больше. Пройди по каждой, и не только по заказам.

В уроке 52 ты уже ловил чужой заказ: второй зритель запрашивает GET /orders/{id} и должен получить 403. Тогда это была одна ручка и один тест. С тех пор у «Антракта» появились оплата, возврат, список своих заказов, а в задаче урока ещё и кабинет зрителя. Проверка прав, которую сделали один раз, не размножается сама, когда появляются новые ручки. Её надо размножить тестами.

Гардероб

Гардеробщица в театре отдаёт пальто по номерку. На лицо она не смотрит: номерок 47, значит, пальто с крючка 47. Работает это, пока номерки не подделывают. Но номерки в театре идут подряд, и если у тебя 47, легко догадаться, что у соседа 48. Принеси картонку с цифрой 48, и пальто твоё.

Защита тут не в том, чтобы прятать номера. Защита в том, чтобы гардеробщица проверяла, тот ли это человек, который сдавал пальто. В API это значит: сервер на каждый запрос с номером ресурса проверяет не только «кто ты» (вход), но и «твоё ли это» (права на этот конкретный объект).

IDOR это ровно гардеробщица, которая не смотрит на лицо. Письмо зрителя Саввы описывает баг orders-idor с нашего стенда, только найденный не тестом, а любопытством.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.