Пятый фактор
Обсудить задачу
Безопасность и эксплуатация

Защита сайта и API от SSRF

Ищем все функции, где сервер получает URL из формы, API, файла импорта или ответа внешней системы. Проверяем протоколы, локальные и служебные адреса, альтернативные записи IP, цепочки редиректов и смену DNS-ответа.

Срок: 9 рабочих дней

Когда стоит обратиться

Обычно к нам обращаются в таких ситуациях:

  • Пользователь может вставить ссылку на изображение, документ, RSS, webhook или страницу для создания превью.
  • Сервер загружает внешние данные и работает в облаке либо имеет доступ к внутренним сервисам компании.
  • Разработчики уже добавили проверку строки адреса, но хотят учесть редиректы, IPv6, DNS и разные формы записи IP.

Что именно мы сделаем

01

Ищем все функции, где сервер получает URL из формы, API, файла импорта или ответа внешней системы.

02

Проверяем протоколы, локальные и служебные адреса, альтернативные записи IP, цепочки редиректов и смену DNS-ответа.

03

Добавляем строгий разбор URL и список разрешённых направлений либо правила блокировки внутренних и служебных сетей.

04

Проверяем адрес повторно после DNS-разрешения и каждого перенаправления, задаём лимиты времени, размера ответа и числа переходов.

05

Запускаем контрольный набор безопасных и опасных адресов, проверяем пользовательское сообщение и сохраняем события блокировки в журнале.

Что входит в стоимость

34 900 ₽ за всю работу

Ищем все функции, где сервер получает URL из формы, API, файла импорта или ответа внешней системы. Проверяем протоколы, локальные и служебные адреса, альтернативные записи IP, цепочки редиректов и смену DNS-ответа. Добавляем строгий разбор URL и список разрешённых направлений либо правила блокировки внутренних и служебных сетей.

Перед сдачей проверяем, что разрешённые внешние ресурсы продолжают загружаться по обычному сценарию. В комплект результата входят: защищённые функции загрузки и обращения по пользовательским URL; набор автоматических SSRF-проверок для следующих релизов; описание разрешённых направлений и журнал причин блокировки. Небольшие связанные уточнения, которые появляются во время работы, уже учитываем в стоимости.

Что будет готово

Материалы

Передадим вам

  • Защищённые функции загрузки и обращения по пользовательским URL.
  • Набор автоматических SSRF-проверок для следующих релизов.
  • Описание разрешённых направлений и журнал причин блокировки.
Проверка

Перед сдачей проверим

  • Разрешённые внешние ресурсы продолжают загружаться по обычному сценарию.
  • Локальные, служебные и облачные адреса блокируются до получения содержимого.
  • Переход на запрещённый адрес через DNS или редирект также завершается безопасным ответом и записью в журнале.

Как это выглядит на практике

Как проверяем импорт изображения по ссылке

Типичная ситуация: пользователь может вставить ссылку на изображение, документ, RSS, webhook или страницу для создания превью. Сначала загружаем обычное тестовое изображение с разрешённого внешнего адреса, затем передаём адрес локального сервиса и получаем безопасный отказ до загрузки содержимого, а в финале повторяем проверку через перенаправление и альтернативную запись IP.

  1. 01

    Загружаем обычное тестовое изображение с разрешённого внешнего адреса.

  2. 02

    Передаём адрес локального сервиса и получаем безопасный отказ до загрузки содержимого.

  3. 03

    Повторяем проверку через перенаправление и альтернативную запись IP.

  4. 04

    Сверяем журнал, пользовательское сообщение и автоматический тест.

Что понадобится для работы

От вас

  • Доступ к коду, тестовому сайту и журналам сетевых запросов.
  • Список функций, которые принимают ссылки либо callback-адреса.
  • Перечень внешних доменов и сервисов, с которыми сайт должен работать.

Если у вас немного другая ситуация

Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.

Стоимость работ 34 900 ₽ полная стоимость известна заранее
  1. 3 000 ₽после подписания договора через Диадок
  2. 31 900 ₽после выполнения, демонстрации и приёмки результата

Предоплата входит в общую стоимость. Оставшуюся сумму оплачиваете после демонстрации и приёмки готовой работы.

Часто спрашивают

Об этой услуге

Какие функции сайта чаще связаны с SSRF?

Импорт картинок и документов по ссылке, создание превью, проверка webhook, загрузка аватаров, конвертация файлов и серверный прокси для внешних ресурсов.

Почему простой список запрещённых строк слабее?

Один адрес можно записать несколькими способами, получить через DNS или открываем после редиректа. Защита проверяет фактическое направление на каждом этапе запроса.

Сохранятся ли нужные внешние загрузки?

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

Подходит ли работа для пользовательских webhook?

Да, callback-адрес тоже способен направить сервер во внутреннюю сеть. Проверяем адрес при сохранении и перед вызовом, а также обработаем редиректы и смену DNS.

Цена и изменения по ходу работы

Цена на странице окончательная?

Да. Перед началом мы сверяем исходные данные и фиксируем результат в договоре. Указанная на странице сумма покрывает согласованную работу целиком, даже если её техническая реализация потребует больше времени, чем ожидалось при оценке.

Что означает резерв незапланированных работ?

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

Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.

Можно уточнять детали уже во время работы?

Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.

Начало работы и оплата

Как оформляются договор и оплата?

Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.

Когда начинается срок выполнения?

Срок отсчитывается после согласования задачи, получения необходимых доступов и материалов, подписания договора и поступления предоплаты. Конкретную дату старта и плановый день готовности подтверждаем перед началом.

Как учитываются платные лицензии и внешние сервисы?

До старта проверяем, нужны ли тарифы, лицензии, сертификаты или дополнительные ресурсы внешних систем. Если они потребуются, заранее покажем варианты и стоимость. По возможности аккаунты и лицензии оформляются сразу на заказчика.

Проверка результата и гарантия

Как принимается готовая работа?

Вместе проверяем согласованные сценарии на контрольных данных или тестовой копии, а затем демонстрируем результат. Для интеграций сверяем передачу данных и обработку ошибок, для сайта — работу нужных страниц и действий пользователя, для отчёта — расчёты и обновление данных.

Какая гарантия действует после сдачи?

На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.

Следующий шаг

Опишите задачу

Расскажите, что происходит сейчас и какой результат хотите получить. Можно указать сайт, CMS, 1С, CRM, ERP или другую систему. Если подходящую услугу выбирать рано, просто опишите ситуацию — мы разберёмся и предложим следующий шаг.