ДАРА ЗАЩИТА / Документация / Защита форм
Защита форм
Как скрипт ДАРА ЗАЩИТЫ находит формы, добавляет токен и ловушку, когда показывает капчу-пазл и как защитить формы на JavaScript вызовом DaraProtect.token().
Скрипт сам находит формы с полями для текста, email или телефона, добавляет в них скрытое поле dara_token и невидимую ловушку _dz_hp (её заполняют только боты). При отправке скрипт спрашивает наш сервер, всё ли в порядке:
- человек — форма уходит сразу, посетитель ничего не замечает;
- подозрительный посетитель в боевом режиме — капча-пазл: поставить фигуру на место ползунком или стрелками клавиатуры;
- капча решена — форма уходит; закрыта — не уходит; три ошибки — уходит с пометкой «капча не пройдена» (сервер сайта увидит это в проверке и отправит заявку в журнал).
Какие формы защищать, задаётся на вкладке «Защита форм»: все, только по CSS-селектору или все, кроме. Чтобы скрипт не трогал одну форму, добавьте ей data-dara="off".
Поле dara_token уходит на сервер сайта вместе с остальными полями. Чтобы проверка была полной, сервер передаёт его в API антиспама. Contact Form 7, формы Битрикса и обычные HTML-формы передают все поля сами.
Формы на JavaScript
Если форма отправляется своим кодом (fetch, XMLHttpRequest) и сама решает, какие поля отправить, получите токен перед отправкой и добавьте его в запрос:
const token = await DaraProtect.token(); // при необходимости покажет капчу
if (token === null) return; // посетитель закрыл капчу — не отправляем
body.dara_token = token; // пустая строка — сервер Защиты недоступен, отправляйте как есть
await fetch('/api/lead', { method: 'POST', body: JSON.stringify(body) });
DaraProtect.ready(fn) вызывает fn({class}), когда визит оценён (human, suspect или bot). DaraProtect.challenge() показывает капчу без подозрения — если нужна проверка вручную.