К списку
Безопасность и авторизацияSeniorТехническое

Методы проверки защиты от open redirect в OAuth/OIDC сценариях

Краткий ответ

Для тестирования защиты от open redirect в OAuth/OIDC необходимо подставлять вредоносные redirect_uri, проверять их наличие в whitelist, удостоверяться в точном совпадении и запрещать использование wildcard в параметрах.

Развёрнуто

Краткий ответ

Для эффективного тестирования защиты от open redirect в OAuth/OIDC следует подставлять скомпрометированные redirect_uri, контролировать строгий whitelist, обеспечивать точное совпадение URL и исключать wildcard-символы в redirect_uri.


Как это работает

Open redirect — уязвимость, при которой злоумышленник может перенаправить пользователя на произвольный URL, используя OAuth/OIDC flow. В частности, параметр redirect_uri должен быть строго проверен сервером авторизации. В идеале сервер сравнивает запрашиваемый redirect_uri с заранее определённым списком разрешённых адресов — whitelist.

Важно, чтобы проверка была строго точной, а не частичной или с использованием wildcard, например, https://*.example.com. Это предотвращает подмену URL и исключает возможность перенаправления на вредоносные сайты.

Тестирование включает попытки подставить вредоносные или изменённые redirect_uri и проверку того, что сервер их отклоняет.

Элемент проверки Описание Результат при правильной защите
Вредоносный redirect_uri Попытка использовать произвольный URL Запрос отклоняется, редирект не происходит
Whitelist Перечень разрешённых redirect_uri Сервер принимает только URL из списка
Проверка совпадения Точное сравнение полного URL без wildcard Обеспечивает отсутствие обхода фильтрации

Пример

1. В запросе OAuth передаём redirect_uri=https://evil.com
2. Сервер проверяет: есть ли https://evil.com в whitelist? Нет.
3. Сервер возвращает ошибку или игнорирует redirect_uri.
4. Пользователь не перенаправляется на вредоносный сайт.

Что важно знать на собеседовании

  • Open redirect может привести к фишингу и компрометации сессий.
  • whitelist должен содержать точные URL без wildcard.
  • Валидация redirect_uri — обязанность сервера авторизации.
  • Тестировать нужно как положительные, так и отрицательные кейсы.
  • Знание спецификаций OAuth 2.0 и OIDC помогает понять, как должна работать проверка.

Тема: Безопасность и авторизация | Уровень: senior