Схема работы

Как работает SDK, как он взаимодействует с запросами приложения и ответами от вашего сервера / системы защиты.

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

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

  1. Приложение инициирует отправку запроса к ресурсу, который защищает Servicepipe.

  2. SDK, встроенный в сетевой слой приложения, добавляет к запросу служебные cookies Servicepipe и отправляет по адресу.

  3. Запрос поступает в систему защиты.

  4. Система защиты анализирует запрос и решает, что с ним делать. Возможны три сценария:

    • Пропуск — запрос легитимный; защита как reverse-proxy передаёт его на ваш сервер, сервер отвечает, ответ передаётся назад приложению.

    • Блокировка — запрос сделал бот; защита отдаёт в ответ ошибку HTTP 403.

    • Антибот-проверка — защита не уверена, бот отправил запрос или человек. Отдаёт в ответ редирект на JS-челлендж или CAPTCHA.

    Если это новая сессия, система защиты добавит к ответу служебную Set-Cookie с ID сессии. SDK её сохранит и будет добавлять к следующим запросам, пока срок жизни этой cookie не истечёт.

  5. Приложение получает ответ. Этот ответ сначала перехватывается SDK. Из него SDK считывает и сохраняет выставленные системой защиты cookies. Затем, если пришёл:

    • Любой другой ответ , кроме редиректа на JS-челлендж или CAPTCHA — SDK передаёт ответ дальше приложению.

    • Редирект на JS-челлендж или CAPTCHA — SDK открывает страницу в WebView/WKWebView (для пользователя это выглядит как всплывающее окно/экран) и даёт там пройти анти-бот проверку.

    JS-челлендж проходится автоматически, пользователь видит только всплывшую на секунду иконку загрузки. CAPTCHA требует от него активных действий.
  6. (Опциональный этап) если был JS-челллендж или CAPTCHA, по его окончании SDK закрывает WebView/WKWebView.

    Если проверка была пройдена успешно, защита может выдать особую Set-Cookie, с которой пользователь какое-то время сможет проходить на ресурс без проверок. SDK сохраняет эту cookie и будет добавлять её в запросы, пока время жизни cookie не истечёт.

    Затем SDK отправляет исходный запрос с обновлёнными cookies ещё раз. Cистема защиты узнаёт пользователя, который только что проходил антибот-проверку, и:

    • пропускает запрос — если проверка показала, что пользователь не бот;

    • блокирует запрос — если проверка показала, что пользователь бот.