SSRF использует сервер как сетевого клиента. Список назначений применяется к его фактическому соединению, включая новые цели после перенаправления.
Разрешённые адреса исходящих запросов
Определение
Разрешённые адреса исходящих запросов — заранее заданный список узлов, схем и портов, к которым серверному коду позволено обращаться; остальные направления отклоняются. Проверка охватывает не только строку URL, но и фактический адрес соединения, и каждую цель перенаправления.
Также ищут: Outbound request allowlist · egress destination allowlist · разрешённые outbound endpoints · SSRF destination policy
Зачем это знать
Проверку одной строки URL легко обойти перенаправлением, необычной записью IP-адреса, подменой DNS или неожиданной схемой.
Карта понятия
Что подтверждено
Когда внешние сервисы известны, приложение разрешает конкретные IP-адреса или доменные имена и проверяет ввод без обращения к DNS на этапе разбора.
Граница применимости: Защита от SSRF с фиксированным списком адресов.
Полная проверка учитывает схему, порт, полученный IP-адрес и перенаправления; автоматический переход отключают, чтобы уже проверенный URL не привёл к запрещённой цели.
Граница применимости: Применение ограничений к адресу исходящего запроса.
Разрешённая схема HTTPS говорит о выборе транспорта, но не о допустимости назначения. В схеме с заранее известными внешними службами отдельно ограничивают адреса и порты, к которым серверу разрешено обращаться.
Граница применимости: Защита от SSRF при фиксированном наборе назначений; универсальный сборщик произвольных сайтов требует отдельной модели.
Проверенное имя и фактически выбранный адрес соединения могут разойтись при изменении DNS. Защитный контракт связывает разрешённое назначение с адресом используемого соединения и сетевыми ограничениями, а не только с предварительной проверкой строки.
Граница применимости: Вывод из рисков DNS и правил назначения OWASP; конкретная реализация соединения и повторной проверки подлежит отдельному тесту.
Разрешение исходного URL не разрешает автоматически адрес перенаправления. Для фиксированного списка безопасная политика отключает автоматические переходы; если продукту они нужны, каждое новое назначение требует той же полной проверки и сетевых ограничений.
Граница применимости: Базовая рекомендация OWASP — отключить автоматические перенаправления. Вариант с явной повторной проверкой является выводом и не обещанием безопасности любой библиотеки.
Не путать
CORS выполняет браузер для доступа к ответу. Исходящий запрос серверного кода ограничивают его собственными правилами назначения и сети.
Что проверить
- Укажите, нужны ли произвольные сайты или фиксированный набор служб.
- Проверяйте схему, имя, порт и допустимые адреса назначения.
- Не считайте HTTPS разрешением любой цели.
- Свяжите проверку DNS с адресом фактического соединения.
- Отключите автоматические перенаправления для фиксированной политики.
- Если переходы необходимы, повторно проверяйте каждое назначение.
- Проверьте сетевые ограничения и ограничения ресурсов исходящего запроса.
Первоисточники
- Server Side Request Forgery Prevention Cheat Sheet
Описывает SSRF, allowlist destinations, IP/domain validation, DNS risks и запрет автоматических redirects.
- Server Side Request Forgery Prevention Cheat Sheet
Описывает SSRF, allowlist destinations, IP/domain validation, DNS risks и запрет автоматических redirects.
Утверждения: 02
- RFC 8446: The Transport Layer Security Protocol Version 1.3
Определяет TLS 1.3, включая encrypted channel, PSK authentication, PSK identity и PSK+(EC)DHE modes.
Утверждения: 03
- Input Validation Cheat Sheet
Задаёт раннюю server-side проверку syntax и semantics, allowlist approach и границу с output encoding.
- HTTP Semantics
Определяет stateless HTTP, origin server, intermediaries, target URI и security significance полей authority и Host.
Утверждения: 05
- Fetch Standard
Определяет CORS protocol, credentials modes, allowed origins и CORS-preflight fetch через OPTIONS.