О сервисе
VK Капча — сервис, который в реальном времени определяет, является ли пользователь приложения человеком. Сервис защищает ключевые точки взаимодействия с пользователями — авторизацию, регистрацию, API-эндпоинты — от автоматизированных атак. К таким атакам относятся:
- массовая регистрация фейковых аккаунтов;
- полный перебор паролей (brute force);
- автоматическая отправка сообщений через веб-формы;
- сбор контента (scraping);
- DDoS-атаки на прикладном уровне.
Сервис отсеивает ботов и точно верифицирует легитимных пользователей при минимальном участии с их стороны. Инфраструктура сервиса включает SDK для веб-приложений, iOS и Android, а также API для бэкенда.
-
Пользователь выполняет действие в приложении.
-
Фронтенд приложения отправляет запрос на выполнение этого действия бэкенду.
-
Бэкенд приложения проверяет, нужно ли для этого запроса показать капчу. Если да, то бэкенд обращается к API VK Капча, чтобы создать капча-сессию.
-
Сервис VK Капча возвращает ссылку для запуска виджета капчи на фронтенде приложения.
-
Бэкенд приложения отправляет полученную ссылку фронтенду.
-
Фронтенд приложения передает ссылку в VK Капча SDK, чтобы отобразить виджет капчи пользователю.
-
VK Капча SDK отображает виджет капчи пользователю.
-
Пользователь проходит проверку. Во время прохождения капчи сервис анализирует его поведение и оценивает уровень доверия к пользователю (trust score).
-
После успешного прохождения капчи VK Капча SDK возвращает фронтенду
success-token— криптографически защищенный токен, подтверждающий, что пользователь прошел проверку. Если пользователь не прошел капчу, вместо токена возвращается ошибка. -
Фронтенд приложения отправляет бэкенду повторный запрос на выполнение действия пользователя, содержащий
success-token. -
Бэкенд приложения отправляет
success-tokenв API VK Капча для верификации. -
Сервис VK Капча подтверждает валидность токена.
-
Бэкенд приложения обрабатывает исходное действие пользователя и отправляет результат фронтенду.
-
Пользователю отображается результат выполнения действия.
В сервисе VK Капча доступно три типа капчи:
- Флажок (checkbox) — подтверждение одним нажатием. Минимальное взаимодействие, подходит для большинства сценариев.
- Ползунок (slider) — визуальная задача на сетке изображений, требующая человеческого восприятия и логики.
- Аудио (sound) — аудиозадание: прослушать звуковую дорожку и ввести распознанное слово.
Тип капчи можно задать при создании капча-сессии или он может выбираться автоматически на основе оценки уровня доверия к пользователю.
При автоматическом выборе капчи, если сервис оценивает пользователя как доверенного, будет предложена капча-флажок. В противном случае сервис эскалирует сложность и предлагает капчу-ползунок или аудиокапчу.
Сервис VK Капча определяет уровень доверия к пользователю в реальном времени, объединяя несколько групп сигналов:
-
Поведенческие сигналы.
ML-модели анализируют поведение пользователя: траектории курсора, паттерны кликов, скорость реакции, хронологию и последовательность действий. На основе этих данных формируется цифровой профиль пользователя (fingerprint), который сохраняется между сессиями. Боты, имитирующие человека, оставляют характерные атрибуты, которые ML-модель распознает.
-
Сигналы интенсивности и окружения.
Сервис исследует интенсивность передачи пользовательских запросов и среду исполнения на стороне пользователя: характеристики устройства, конфигурацию браузера, доступные API. Анализируя полученные данные, сервис выявляет автоматизированное окружение: headless-браузеры, эмуляторы, фермы виртуальных машин.
Итоговая оценка уровня доверия определяет тип капчи, которую нужно пройти пользователю.
Поддерживаемые браузеры:
- Google Chrome версии 52 и выше;
- Microsoft Edge версии 79 и выше;
- Firefox версии 57 и выше;
- Safari версии 11 и выше;
- Opera версии 39 и выше;
- Яндекс Браузер версии 16.9 и выше.
iOS:
- iOS версии 12 и выше;
- Xcode версии 16.2 и выше;
- Swift Package Manager версии 5.9 и выше;
- CocoaPods версии 1.13 и выше.
Android:
- Android версии 5.0 (API 21) и выше;
- Java версии 11 и выше;
- Kotlin версии 1.9.0 и выше.