Все возможности
Проверка

Три слоя защиты, пять поверхностей, ни один бот не победит

Проверка - сердце Caputchin. Ворота работают вместе; поверхности - это то, как ты подключаешь их к своему стеку. Путь по умолчанию: виджет плюс вызов verify из твоего бэкенда. Остальные поверхности здесь на случай, когда умолчание не подходит.

Как идёт проверка.

Посетитель открывает твою страницу. Виджет прогоняет ворота. Подписанный токен переходит к твоему бэкенду. Твой бэкенд просит нас его подтвердить.

  1. ПосетительОткрывает твою страницу
  2. Виджет CaputchinЗагружается на твоей странице
  3. Античит как в играхРаботает в изолированном iframe
  4. Твой бэкендПолучает обёрнутый токен
  5. /siteverifyCaputchin подтверждает токен
Одна и та же форма, развернёшь ли ты виджет, вызовешь API напрямую или используешь размещённую проверку. Обёрнутый токен - единственное, что переходит из браузера посетителя на твой бэкенд.
Матрица угроз
Любой тариф

Каждый слой повышает цену для своей атаки.

Ни один слой в одиночку не должен побеждать каждую атаку. Суть в композиции: к моменту, когда запрос доходит до игры, он уже уплатил пошлину каждых ворот перед собой. Честная карта ниже.

  • Скрипты на curl и fetch
    Голые HTTP-скрипты, бьющие прямо в твой эндпоинт.
    Слои, что отвечают на неё
    • Инструментирование браузера
  • Безголовые браузеры
    Puppeteer, Playwright или Selenium, работающие в фоне.
    Слои, что отвечают на неё
    • Инструментирование браузера
  • Фермы ботов на настоящих браузерах
    Настоящие экземпляры Chrome на арендованных серверах, иногда за рулём люди.
    Слои, что отвечают на неё
    • Proof of work
    • Античит как в играх
  • Решатель как услуга
    Платные фермы решателей, которые берут испытание и возвращают ответ, нередко дешёвым человеческим трудом.
    Слои, что отвечают на неё
    • Proof of work
    • Античит как в играх
  • Передовые ИИ-модели
    Модели зрения и агентов, что читают сетки изображений, решают OCR-головоломки и проходят старые CAPTCHA за миллисекунды.
    Слои, что отвечают на неё
    • Античит как в играх
Античит как в играх
Любой тариф

Больше, чем игра. Движок проверки.

Крошечная, разнообразная игра, в которую люди играют за секунды и получают удовольствие. Под капотом работает тот же античит-плейбук, которым соревновательные многопользовательские игры ловят читеров: наши серверы готовят каждый раунд до того, как ты сыграешь (авторитет сервера), и пересимулируют его после (детерминированное переигрывание), так что игру нельзя подделать, можно только сыграть. Это слой, которого нет ни у одной другой CAPTCHA, и причина, по которой Caputchin существует.

Прежде чем ты сыграешь

Авторитетная настройка на сервере

  • Подписанный одноразовый билет (окно 30 минут) чеканит раунд. Потрать его раз, и переиграть его уже нельзя.
  • Игра и её случайный сид выбираются на наших серверах, никогда в браузере, так что ничто на стороне клиента не может выбрать цель полегче.
  • Каждый раз другая игра из пула. Решатель никогда не знает, какая ему достанется, поэтому не может натренироваться заранее.

Та же модель, что у соревновательного игрового сервера: клиент шлёт только ввод, никогда вердикт.

После того как ты сыграл

Детерминированное переигрывание

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

Построено на том же детерминизме, на который опирается синхронный (lockstep) мультиплеер: раунд пересимулируется из сида, чтобы подтвердить, что в него и правда сыграли.

В песочнице на твоей странице

Изолированный iframe без сети и без доступа к твоим cookie, хранилищу или DOM.

Разнообразие игр

Разные сайты получают разные игры, и каталог всё растёт.

Запечатанное переигрывание

Переигрывание идёт без сети и с жёстким бюджетом CPU. Ничто не входит и не выходит.

Код, защищённый от подмены

Каждый игровой артефакт проверяется по хешу прежде, чем отрисуется хоть один кадр.

Без профилирования

Мы не следим за твоей мышью или таймингом. Вместо этого мы переигрываем раунд.

Ещё двое ворот, сложенных рядом

Игровой античит никогда не работает в одиночку. Ворота proof of work и инструментирование браузера идут вместе с ним, каждое повышает цену для своего шаблона атаки. Сложенные последовательно, каждый слой, до которого добрался атакующий, уже уплатил пошлину.

Любой тариф

Proof of work

Каждая попытка проверки заставляет браузер посетителя решить маленькую криптографическую головоломку. Человек ждёт пару сотен миллисекунд и ничего не замечает. Ферма ботов, платящая за вычисления в масштабе, чувствует каждый такт.

Где пригодится

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

Любой тариф

Инструментирование браузера

Виджет читает сигналы окружения, которые выдаёт браузер посетителя. У настоящих браузеров они есть всегда. Безголовые инструменты и скрипты обычно подделывают их плохо или вовсе никак. Переключатель на каждый сайт, блокировка автоматизированных браузеров, наотрез отклоняет всё, что инструментирование помечает как безголовое или управляемое драйвером (Playwright, Selenium, Puppeteer). Это opt-in, так что оставь выключенным, если ждёшь легитимную автоматизацию.

Где пригодится

Формы комментариев и страницы контактов, по которым бьют скрипты Playwright или Selenium. С включённой блокировкой автоматизированных браузеров скрипт отсеивается у двери, а не получает испытание на решение.

Поверхности интеграции

Пять способов поставить проверку перед посетителем. Выбери тот, что подходит форме твоего кода, стека или команды.

Любой тариф

Готовый веб-компонент

Один HTML-тег монтирует виджет. Он прогоняет ворота и отдаёт тебе токен, когда посетитель проходит. Работает в React, Vue, Svelte, Angular или чистом HTML, потому что веб-компоненты нативны для браузера и не нуждаются в обёртке фреймворка.

Где пригодится

Путь по умолчанию. Добавь защиту от ботов на форму регистрации за минуты, не подбирая новую зависимость.

Любой тариф

Runtime API

У API проверки две части. Вызов verify, который твой бэкенд использует в каждой интеграции, чтобы подтвердить, что токен настоящий. И низкоуровневые эндпоинты испытания, чтобы вести проверку самому, для редких случаев, когда виджет не подходит. Отличается от REST API управления, который твоя команда использует для изменений аккаунта и конфигурации.

Где пригодится

Вызов verify: каждый бэкенд, всегда. Прямой API: чаты, пейволлы, многошаговые формы, вплетённые в твой UI, везде, где элемент виджета не может отрисоваться.

Любой тариф

Встраивание в мобильный WebView

Специально сделанная страница встраивания для нативных приложений iOS и Android, которые отрисовывают испытание внутри своего WebView. Тот же виджет, меньший след, никакого нативного SDK для установки.

Где пригодится

Мобильные приложения, которым нужна проверка без поставки фреймворк-специфичных SDK и без пересборки потока CAPTCHA нативно под каждую платформу.

Alpha tier

Размещённая проверка

Направь action своей формы на нас. Мы проверяем посетителя, затем пересылаем отправки в твой почтовый ящик или на твой эндпоинт. На твоей стороне ноль кода бэкенда, вообще.

Где пригодится

Статические сайты и no-code конструкторы, у которых нет бэкенда, чтобы проверять токены самим. Запусти форму контактов с защитой от ботов за время, нужное, чтобы заменить атрибут action.

Alpha tier

Страничный шлюз на прокси

Полностраничная проверка, которая работает на твоём обратном прокси, перед целым сайтом или маршрутом. Одна решённая игра пропускает посетителя на время (недолговечная подписанная cookie), так он продолжает просмотр без повторного решения. Защищённому приложению не нужны ни тег script, ни хук на бэкенде.

Где пригодится

Запечатанные приложения, в которые нельзя встроить скрипт (админ-панель, SSO-портал, внутренний инструмент). Поставь шлюз на весь хост на прокси, вместо того чтобы трогать приложение.

Частые вопросы

Как Caputchin проверяет посетителя и поверхности, к которым ты его подключаешь.

Что за три слоя проверки?
Proof of work, инструментирование браузера и испытание античита как в играх. Они идут последовательно, так что к моменту, когда запрос доходит до игры, он уже оплатил стоимость каждых стоявших перед ним ворот.
Должны ли настоящие посетители решать головоломку?
Они играют в короткую игру, которая занимает пару секунд. Proof of work и инструментирование браузера незаметно работают в фоне, так что посетитель видит только игру.
Может ли Caputchin останавливать безголовых ботов и ИИ-решателей?
Да. Инструментирование браузера отсеивает безголовые инструменты и скрипты, proof of work облагает налогом вычисления на масштабе, а игра с авторитетом на сервере и детерминированным replay побеждает фермы решателей и передовые модели ИИ.
Как проверить результат на моём сервере?
Виджет выдаёт браузеру одноразовый токен. Твой бэкенд вызывает эндпоинт verify, чтобы подтвердить этот токен, прежде чем доверять запросу. Путь по умолчанию: веб-компонент плюс один вызов verify.
А если элемент виджета не вписывается в моё приложение?
Используй runtime API, чтобы вести проверку самому, размещённую проверку, чтобы направить форму к нам без кода бэкенда, или встраивание в мобильный WebView для нативных приложений iOS и Android.

Запусти проверку на одном ключе сайта. Бесплатно.

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

Начать бесплатно