Все статьи

Дайджест FourA (24 июля - 7 августа 2026)

Выбирайте профиль браузера для каждого запроса. Single теперь проходит SG-Captcha и proof-of-work от eBay без Browser. Раздел активности полностью переработан в Dashboard.

Главное

Выбор профиля браузера теперь настраивается для каждого request. Укажите нужные браузер и ОС, и отпечаток вместе с headers будут им соответствовать. На этой неделе Single научился обходить еще две защиты (SG-Captcha от SiteGround и Argon2 от eBay) без запуска Browser. А вкладка Activity в Dashboard теперь записывает то, что вы запросили, а не внутреннюю инфраструктуру.

Что нового

Выбор профиля браузера для каждого request

До сих пор unblocker: true выбирал одну сигнатуру (наш вариант по умолчанию), и на этом все. Теперь вы можете указать конкретную:

{ "url": "https://example.com", "unblocker": true, "profile": "firefox147" }

или запросите пару браузер и ОС:

{ "url": "https://example.com", "unblocker": true, "browser": "Chrome", "os": "Windows 10" }

API отклоняет неизвестные комбинации по имени и выводит список того, что ДОСТУПНО. Таким образом, опечатка не приведет к незаметной отправке сигнатуры, которую вы не запрашивали.

Полный каталог находится по адресу GET /api/profiles. Он публичный (ключ не требуется), так как это список возможностей, а не секрет. На момент написания доступно 79 пресетов для Chrome, Firefox, Edge, Safari и Tor на Windows, macOS, Android и iOS. Playground читает данные из того же списка, поэтому в выпадающем меню всегда отображается ровно то, что может запросить ваш код.

Почему это важно. Если ваша цель профилирует запросы по ОС, или ваша команда проводит A/B тестирование того, какой стек проходит через определенный барьер, теперь вы фиксируете эту переменную, пока все остальное меняется.

Single обходит SG-Captcha и proof-of-work от eBay

Две защиты, которые раньше заставляли переключаться на Browser, теперь проходятся на Single. eBay использует собственную задачу proof-of-work (головоломка Argon2), а SiteGround защищает часть сайтов на виртуальном хостинге с помощью SG-Captcha. Обе решаются без рендеринга. Это означает, что response возвращается в виде одного HTTP-запроса и тарифицируется соответствующим образом.

Сигнал о защите в ответах также расширился. Browser теперь возвращает defenses: { present, cleared }. Это позволяет увидеть, какой вендор стоял перед страницей и смогли ли мы его пройти. Биллинг работает по тому же правилу. Любой пройденный вендор учитывается, независимо от бренда. До этого периода Cloudflare был единственным платным решением. Теперь к нему добавились Akamai Bot Manager, SG-Captcha и задача от eBay.

Обновленный просмотр активности в Dashboard

Две колонки в списке активности в Dashboard показывали неверные данные. Метод HTTP всегда показывал POST в каждой строке (все наши конечные точки используют POST, поэтому колонка была константой и не давала никакой информации). А IP клиента при вызовах Playground фиксировал, откуда обращался Playground, а не человека, нажавшего Run.

Обе проблемы устранены. Колонка метода теперь показывает глагол, который вы отправили в теле request. IP клиента в строках Playground теперь показывает IP-адрес браузера авторизованного пользователя. Он передается внутри подписанного токена Playground, поэтому клиент API не может его подделать.

Заодно мы переработали остальную часть этого представления. Таблица помещается на экране ноутбука без скрытия колонок, колонка продукта сворачивается в строку request, а панель деталей получила вкладки. Теперь request, response и сводка защиты имеют собственную прокрутку.

Биллинг: 3D Secure при смене тарифа

Если эмитент вашей карты требовал подтверждения 3DS для смены тарифа (а не только при первоначальной подписке), этот шаг не срабатывал, и изменение незаметно откатывалось. Теперь он срабатывает. Если в прошлом месяце вы пытались сменить тариф и казалось, что ничего не произошло, причина была в этом.

Под капотом

Playground отказывается создавать заголовок response из данных загруженного сайта (ошибка типа инъекции заголовков, которую мы поймали на ранней стадии). Биллинговый endpoint в Dashboard проверяет, что вызывающая сторона владеет ресурсом перед ответом. Это закрывает уязвимость IDOR.

Сама система развертывания получила недельный объем исправлений после сбоя 6-го числа, когда диск хоста развертывания переполнился прямо во время сборки. Теперь каждый сервис отказывается собираться без запаса свободного места, развертывания выполняются последовательно вместо состояния гонки, шлюз продолжает работать при нестабильности бэкенда, а сервисы действительно завершают работу по SIGTERM, а не зависают в ожидании принудительного завершения через тридцать секунд.

Долгое время выбор браузерной сигнатуры оставался за нами. Теперь это не обязательно.