Rostelecom Security Labs

SecureCode Review — User Profile IDOR

Контроллер аккаунтов отдаёт профиль по ID из URL без проверки владельца. Найди строку, объясни риск Insecure Direct Object Reference и предложи защиту.

📚 Теория: IDOR и проверка владельца (раскрыть)

Почему появляется IDOR?

Разработчики доверяют идентификатору из URL и считают, что авторизация уже была. Приложение не проверяет, кому принадлежит ресурс.

⚠️ Пользователь просто меняет ID и скачивает чужие профили.

Какие последствия?

Раскрытие чужих персональных данных, нарушение ФЗ-152 и прозрачный путь к эскалации привилегий.

🔐 Нужно сопоставлять владельца ресурса и действующего пользователя.

1. Запрос

Клиент отправляет /api/accounts/42, хотя сам владеет ID 11.

2. Обработка

Контроллер берёт ID из URL и отдаёт профиль без доп.проверок.

3. Утечка

Атака раскрывает ФИО, контакты, бонусные баллы другого клиента.

Как нужно: проверяйте право доступа на уровне сервиса: запросом findByIdAndOwner, сравнением accountId с currentUser.getAccountId(), а также добавьте централизованный Access Decision Manager.

Контекст

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

Сниппет

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

Code Review

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

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