Как работает Servicepipe Widget CAPTCHA

Что происходит, когда пользователь совершает действие, защищённое Servicepipe Widget CAPTCHA.

Схема работы кратко

Это упрощённое описание без деталей, которое поможет легко представить суть процесса.

  1. Пользователь доходит до защищаемого действия — например, жмёт кнопку «Зарегистрироваться».

  2. Servicepipe с помощью технологии Антибот анализирует технические характеристики запроса и оценивает, насколько пользователь похож на бота:

    • Если пользователь человек, ему не приходится проходить капчу — Servicepipe сразу выдаёт токен, подтверждающий, что проверка пройдена.

    • Если есть подозрения, что это бот, Servicepipe выдаёт капчу. Во время выполнения капчи система собирает дополнительные сигналы с его устройства: движения курсора, параметры окружения и другие.

    Если капча решена правильно, а совокупность сигналов подтверждает «человечность», Servicepipe выдаёт разрешающий токен. Если решение неверное или сигналы похожи на бота, система выдаёт новые капчи до бесконечности и не даёт завершить действие.

  3. Ваш бэкенд проверяет токен, который Servicepipe выдал пользователю:

    • Если токен в порядке, пользователь успешно завершает действие — например, регистрирует аккаунт.

    • Если с токеном что-то не так (например, злоумышленник пытается снова использовать старый токен), ваш бэкенд выдаёт ошибку.

Ниже описываем полную схему работы со всеми этапами.

Полная схема работы

1. Вы добавляете капчу на страницу

Вы встраиваете Servicepipe Widget CAPTCHA на страницу, где находится защищаемое действие — например, в форму регистрации.

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

  • Виджет с чекбоксом «Я не робот» виден сразу после загрузки страницы. Когда пользователь установит флажок, откроется модальное окно с антибот-проверкой.

  • Виджет появляется после определённого события, заданного вами. Например, можно настроить его появление при переходе к следующему шагу формы. Когда пользователь установит флажок, откроется модальное окно с антибот-проверкой.

  • После определённого события сразу открывается модальное окно с антибот-проверкой (без виджета с чекбоксом): например, можно настроить открытие окна после нажатия на кнопку «Зарегистрироваться».

После открытия модального окна все три сценария будут работать одинаково: проверять bot score пользователя, а затем пропускают его либо выдают капчу.

2. Пользователь доходит до защищаемого действия

Пользователь работает с сайтом как обычно: например, заполняет форму и жмёт кнопку «Зарегистрироваться». В ответ ваш сайт открывает модальное окно Servicepipe Widget CAPTCHA.

3. Servicepipe оценивает пользователя

Когда открывается модальное окно, браузер обращается к Servicepipe. Система анализирует телеметрию запроса на уровнях L3/L4–L7 — то есть оценивает, как запрос проходит по сети, как устанавливается соединение и что именно передаётся внутри HTTP.

Например, система смотрит на:

  • Признаки статистических аномалий

  • Репутацию источника запроса

  • HTTP-параметры запроса

  • Параметры TLS-соединения

  • Другие признаки, которые помогают понять характер трафика

Все эти данные оцениваются в комплексе. В результате система понимает, откуда пришёл запрос, как он выглядит технически и выносит свой вердикт: насколько клиент похож на бота. Вердикт выглядит как параметр bot score со значениями от 0 до 1, где:

  • 0 — поведение больше всего похоже на человеческое;

  • 1 — поведение больше всего похоже на бота.

4. Servicepipe решает, показывать ли задание

В конфигурации капчи, сделанной для вашего сайта, установлено пороговое значение bot score. Servicepipe сравнивает bot score пользователя с этим порогом. Дальше возможны два сценария:

  • Порог не превышен. Servicepipe считает, что запрос, скорее всего, отправил человек. Пользователю не нужно решать задание: модальное окно закрывается автоматически, а проверка считается пройденной.

  • Порог превышен. Запрос выглядит подозрительно, поэтому Servicepipe показывает в модальном окне задание капчи.

5. Если выдавалась капча, Servicepipe проверяет решение

Пока пользователь решает капчу, система собирает дополнительные сигналы: движения мыши во время прохождения, данные клиентского окружения и другие. Servicepipe с помощью ML-моделей оценивает все собранные данные и понимает, бот проходил проверку или человек.

Возможны четыре результата:

  • Задание выполнено неправильно. Выдаётся новая капча.

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

  • Задание выполнено правильно, но поведение похоже на автоматизированное. Выдаётся новая капча. Количество попыток не ограничено. Бот будет получать задания снова и снова до бесконечности, тратить на это свои ресурсы, но так ничего и не добьётся.

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

6. Браузер получает токен

Если пользователь прошёл антибот-проверку, Servicepipe отправляет в браузер специальный токен. Он подтверждает, что проверка пройдена.

Токен выдаётся в обоих успешных сценариях:

  • пользователь решил задание;

  • Servicepipe пропустил пользователя без задания, потому что его bot score не превысил порог.

7. SDK следит за сроком действия токена

После получения токена JavaScript SDK запускает таймер и следит за сроком его действия. Если токен истекает, SDK очищает его. В виджете появляется сообщение «Проверка истекла». Пользователю нужно пройти капчу ещё раз, чтобы получить свежий токен.

8. Токен передаётся на бэкенд

Браузер отправляет токен на ваш бэкенд вместе с данными защищаемого действия — например, может отправить его в специальном поле вместе с другими полями формы регистрации.

9. Ваш бэкенд проверяет токен

Бэкенд передаёт токен в серверный API Servicepipe. Система защиты проверяет, что токен:

  • выдан Servicepipe;

  • относится к вашей конфигурации капчи;

  • ещё действует;

  • не использовался раньше.

В ответ Servicepipe присылает данные: прошёл токен проверку или нет.

10. Бэкенд принимает решение

Возможны три сценария:

  • Токен прошёл проверку. Бэкенд даёт пользователю выполнить защищаемое действие: например, создаёт новый аккаунт.

  • Токен не прошёл проверку. Бэкенд отклоняет действие. Например, если токен истёк или уже использовался, бэкенд не создаёт аккаунт и просит пользователя пройти капчу ещё раз.

  • Проверить токен временно не удалось — например, из-за сетевой ошибки. Для такого сценария вы устанавливаете реакцию, опираясь на свои приоритеты. Например, если виджет защищает дорогостоящую операцию вроде отправки SMS, можно выдавать ошибку до тех пор, пока не удастся проверить токен. А в менее чувствительном сценарии (например, для отправки комментария с премодерацией) можно дать пользователю завершить действие.

В итоге Servicepipe Widget CAPTCHA не даёт ботам совершить защищаемые действия. А людей пропускает без проблем — большинство пройдёт проверку автоматически и даже не увидят капчу.