Rostelecom Security Labs

SecureCode Review — Order Export IDOR

Экспорт заказов строит CSV по идентификатору из URL и отдаёт его без проверки владельца. Найди проблему и предложи защиту от Insecure Direct Object Reference.

📚 Теория: IDOR в сервисах экспорта (раскрыть)

Чем опасен экспорт?

Экспорт чаще всего отдаёт сырые CSV/PDF пачками данных. Без проверки владельца злоумышленник уводит всю историю заказов.

⚠️ Подмена ID даёт прямой доступ к чужим документам.

Как защититься?

Вызывайте сервис с параметрами orderId и customerId, проверяйте роль и соглашение арендатора (tenant).

🔐 Любой ответ должен идти через слой авторизации.

1. Подмена

Пользователь вводит чужой ID в URL вида /api/orders/812/export.

2. Экспорт

Контроллер экспортирует заказ без сверки владельца и выдаёт CSV.

3. Утечка

Данные чужих заказов уходят конкуренту, нарушая NDA и 152-ФЗ.

Как нужно: в сервисе экспорта проверяйте связку orderId и currentUser.getCustomerId(), добавьте контроль арендатора и централизованный пермишен EXPORT_ORDER.

Контекст

Команда спешила к релизу и сосредоточилась на генерации файлов, забыв об авторизации. Теперь любой сотрудник с минимальными правами может получить чужие заказы.

Сниппет

Загружаем сниппет…

Code Review

Проверка флага

После ревью зафиксируй флаг, чтобы дашборд засчитал лабораторию.