Search
Write a publication
Pull to refresh

Как Stripe использует r.stripe.com/b: глубинный взгляд на антибот-защиту

Level of difficultyMedium
Reading time2 min
Views792

Большинство разработчиков, работающих со Stripe, знают об m.stripe.com/6 — скрипте, который отвечает за сбор fingerprint браузера. Но в тенях остался ещё один важный компонент — r.stripe.com/b, задействованный в защите от автоматизации, ботов и spoof-трафика.

В этой статье разберём:

  • что это за endpoint;

  • когда он вызывается;

  • какие данные он собирает;

  • как его используют Stripe Radar и другие системы;

  • и как это изучают технические коммьюнити вроде bfd.


🛰 Что такое r.stripe.com/b

Это внутренний endpoint Stripe Radar, на который отправляются POST-запросы с браузерной телеметрией. Он не связан напрямую с платёжными формами, но почти всегда вызывается при генерации карты оплаты или перед отправкой /confirm.


Пример запроса

В DevTools вы увидите примерно следующее:

  • Метод: POST

  • URL: https://r.stripe.com/b

  • Content-Type: application/x-www-form-urlencoded

  • Поля в теле запроса:

    • radar_options[hcaptcha_token]

    • radar_options[challenge_type]

    • radar_options[event]

    • p, d, m, v — закодированные значения поведения


Что на самом деле собирается

Stripe анализирует:

  • был ли пользователь подвержен hCaptcha (и как быстро решил);

  • как быстро он прошёл форму;

  • какие JS-поля были доступны;

  • каковы значения screen/window;

  • spoofed ли fingerprint или поведение выглядит реалистичным.


👁 Где искать поведенческий fingerprint

В частности, можно отследить:

  • navigator.webdriver

  • navigator.plugins

  • navigator.languages

  • window.chrome.runtime

  • permissions.query({name: "notifications"})

Именно эти поля влияют на сигналы в r.stripe.com/b.


Что обсуждают на bfd cash

На техническом форуме bfd cash этот endpoint разбирался многократно. Там участники выкладывают HAR-дампы, расшифровки payload'ов r.stripe.com/b и экспериментируют с тем, как поведение влияет на Stripe Radar.
Часть решений, связанных со spoof JavaScript-объектов, появилась именно там.

Если вы хотите понять, как Stripe отличает headless от реального пользователя — этот endpoint даст вам больше, чем любая документация.


🧪 Мы протестировали

В 10 конфигурациях браузеров мы заметили:

  • Headlessr.stripe.com/b отправляется через 30–50ms, payload короткий

  • Ручной ввод → время дольше, но payload включает больше полей

  • Spoof-браузер → payload "пустой", Stripe явно "чувствует" эмуляцию

  • С нормальной мышью / движением → payload расширен, и 3DS не требуется


💡 Вывод

r.stripe.com/b — это не просто технический endpoint. Это важная часть системы, на которой строится поведенческий антифрод Stripe. Понимание того, что именно он получает и как реагирует, может кардинально изменить успешность ваших транзакций.


✉️ В следующей статье — визуализируем запросы r.stripe.com/b и сравним поведение в headless / spoof / реальных сессиях.

Если хотите примеры payload'ов, HAR-логи или скрипты по spoof'у JS — пишите. Или ищите обсуждения на bfd — там уже разобрали большую часть.

Tags:
Hubs:
-3
Comments2

Articles