# Что такое BotProtection?

**BotProtection** - это эффективное решение SDK & Backend для защиты вашей компании от вредоносных атак ботов.

**BotProtection** состоит из двух частей: BotProtection SDK (клиент) и BotProtection machine (сервер). Также присутствует Dashboard для визуализации и статистики.

* BotProtection SDK - это модуль, который включается в платформу
* BotProtection Machine - это сервер, который поднимается в инфраструктуре компании
* BotProtection Dashboard - это веб-страница для мониторинга запросов

BotProtection Machine получает анонимные поведенческие данные с мобильных устройств, а затем анализирует их, чтобы получить результат.

* Если результат меньше 50, то клиент считается человеком.
* Если результат больше 50, то клиент считается ботом.
* Если результат NA, то девайс, с которого собираются данные, неактивен.

При этом коэффициент может варьироваться в зависимости от потребностей компании.

Также BotProtection также при необходимости может регулярно отправлять события в аналитические системы с помощью [отправки метрик](https://docs.mobguards.com/ru/backend-integration/podklyuchenie-metrik).

Для получения дополнительной информации об инфраструктуре — раздел [Архитектура](https://docs.mobguards.com/ru/backend-integration/architecture).

## Взаимодействие с Backend компании

BotProtection работает в двух режимах:

* Активный режим (отсеивание ботов в реальном режиме)
* Пассивный режим (агрегирование статистики и мониторинг)

### Пассивный режим

BotProtection SDK внедряется в платформу и собирает данные о поведении пользователя каждый установленный интервал времени.

### Активный режим

BotProtection SDK внедряется на клиенте и запускается на определенной части вашего приложения. Например, сканирование страницы регистрации.

Когда пользователь или бот входит в защищенную часть приложения, BotProtection SDK запускается и собирает поведенческие данные, отправляя их на BotProtection Machine. Затем, если это злонамеренный пользователь, у компании появляется несколько возможностей блокировки пользователя - синхронный или асинхронный.

#### Синхронный метод проверки

Клиенту отправляется зашифрованное решение BotProtection (бот или не бот), а затем приложение пересылает его на бэкенд-сервер компании в виде JWT-токена.

Чтобы увидеть точную структуру JWT и расшифровать ее, необходимо ознакомится с разделом [Работа с JWT](https://docs.mobguards.com/ru/backend-integration/jwt-token).

#### Асинхронный метод проверки

Если компании не нужны проверки в реальном времени, можно запросить решения BotProtection только для определенных UUID (уникальный идентификатор пользователя).

В этой схеме сервер отправляет POST-запрос на компьютер BotProtection. Дополнительная информация об этом API приведена в разделе [Описание асинхронного API](https://docs.mobguards.com/ru/backend-integration/api-description).
