Большинство разработчиков, работающих со 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 -
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 конфигурациях браузеров мы заметили:
-
Headless →
r.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 — там уже разобрали большую часть.
ссылка на оригинал статьи https://habr.com/ru/articles/929246/
Добавить комментарий