Что именно проверяет сервер
Виджет на странице наблюдает за поведением посетителя и кладёт в форму токен решения — строку, которая означает «эту отправку проверяли». Сама по себе она ничего не гарантирует: браузером управляет посетитель, а бот страницу может вообще не открывать. Поэтому токен отдаётся на проверку с вашего сервера на сервер капчи, и уже ответ определяет судьбу заявки.
| Что | Значение |
|---|---|
| Метод и адрес | POST на адрес проверки сервиса, из вашего бэкенда |
| Тело запроса | secretKey — приватный ключ сайта, solveToken — токен из формы |
| Необязательно | идентификатор сессии — если на сайте работает наш антифрод, в ответ добавится оценка сессии |
| Ответ | JSON: success, домен, отметка времени; при отказе — поле error с причиной |
Правило приёма одно: заявка идёт дальше, только если success равен true, а домен в ответе — ваш. Всё остальное — отказ, включая случай «ответ не разобрался». Отсутствие поля с токеном в запросе — тоже отказ, а не повод пропустить проверку.
Из чего складывается цена
Считать стоит не «сколько стоит капча», а во что обходится закрытая форма целиком. Строк немного, и большая часть из них — разовые.
| Статья | Разовая / регулярная | От чего зависит |
|---|---|---|
| Сам сервис капчи | регулярная | число сайтов; на бесплатном тарифе — один |
| Виджет на страницы | разовая | сколько шаблонов правится |
| Проверка токена в бэкенде | разовая | сколько разных обработчиков принимают формы |
| Обработка отказа и журнал у себя | разовая | нужен ли разбор причин отказов |
| Ожидание ответа сервиса | регулярная | добавляется ко времени отправки формы |
Разброс цены даёт третья строка. Виджет ставится одной правкой шаблона. Проверка — это код в каждом месте, где сервер принимает форму: обратный звонок, заявка с карточки товара, регистрация, комментарий. Сколько обработчиков принимают формы, столько будет и проверок: одна форма — одна правка, десяток разрозненных обработчиков — десять. Отдельная работа — найти их все; пока список точек приёма не составлен, смету считать не на чем.
Строка, на которой экономят
Виджет поставили, в интерфейсе капча числится включённой, спам идёт как шёл. Проверять здесь надо одно — сделана ли серверная проверка токена. Боту, который шлёт этот спам, страница не нужна: запрос уходит прямо на обработчик формы, а в поле токена подставлено что угодно.
- •Отправка идёт мимо страницы и мимо виджета — проверять на клиенте нечего,
- •Один настоящий токен переиспользуется в серии отправок, если его никто не гасит,
- •Отдел продаж разбирает тот же мусор, что и до подключения,
- •Обнаруживается это не сразу: формально защита включена, и подозрение падает на что угодно, кроме неё.
Одна сэкономленная строка сметы возвращается двумя расходами: разбором мусорных заявок и временем на поиск причины. Чем невидимая защита отличается от картиночной и почему она не бьёт по конверсии — в разборе невидимая капча: защита форм и логина от ботов. Выбор между двумя вариантами — в статье невидимая капча против обычной.
Что удорожает внедрение
- •Секретный ключ уехал во фронтенд: придётся перевыпускать ключи и заново раскатывать код,
- •Проверка стоит на одной форме из нескольких — остальные остаются открытым входом,
- •Поведение при недоступности сервиса не выбрано: форма молча пропускает всех либо молча отказывает всем,
- •Ответ проверки нигде не сохраняется, и на вопрос «почему заявка не дошла» отвечать нечем,
- •Токен проверяется не в момент приёма формы, а после очереди — к этому времени он уже просрочен.
На готовой CMS часть работы делает плагин формы, но проверку на сервере он выполняет не всегда — это стоит открыть и посмотреть, а не считать сделанным. Заодно проверяются и остальные точки входа: защита WordPress от взлома.
Приёмка: два запроса
Проверить, что работа сделана, можно без доступа к коду. Отправьте на обработчик формы запрос без поля с токеном — сервер обязан отказать. Затем отправьте с произвольной строкой вместо токена — отказ должен повториться. Если хотя бы в одном случае заявка создалась и упала в почту, серверной проверки нет, сколько бы виджетов ни стояло на страницах.
Сколько стоит сам сервис
Бесплатный тариф — один сайт, без лимита на запросы. Несколько сайтов — тариф Pro в Stitex Shield: 1990 ₽ в месяц, до 10 сайтов. Ключи, код виджета и адрес проверки токена — на странице Stitex Captcha. Данные посетителей мы не передаём третьим лицам.
Частые вопросы
Можно ли проверить токен прямо в браузере?
Нет. Всё, что происходит на странице, посетитель может изменить, а бот — просто не выполнять. Поле с токеном подделывается так же легко, как любое другое поле формы, поэтому решение «принять или отклонить» принимает только ваш сервер по ответу сервиса капчи.
Что приходит в ответе, если токен не прошёл?
Ответ с отказом и полем error, где названа причина: токен просрочен, уже был использован, не того формата, приватный ключ неверный. Код должен различать отказ проверки и недоступность самого сервиса — это разные ситуации с разным поведением.
Сколько живёт токен и можно ли использовать его дважды?
Токен одноразовый и недолгий: он рассчитан на то, что форма уйдёт на сервер сразу после решения капчи. Повторная проверка того же токена отклоняется. Поэтому проверять надо в момент приёма формы, а не после очереди или отложенной обработки.
Что делать, если сервис проверки недоступен?
Выбрать поведение заранее и записать его в коде явно. Решение зависит от цены ошибки: для формы обратного звонка потерянная заявка дороже пропущенного спама, а регистрация и оплата такой поблажки не терпят. Плохой вариант один — оставить это на случайный try/catch.
Нужен ли отдельный ключ на каждый сайт?
Да, пара ключей выдаётся на домен. Site Key стоит в HTML и виден всем, Secret Key живёт только на сервере. В ответе проверки приходит домен — его стоит сверять со своим, чтобы чужой токен не прошёл как ваш.