ДАРА ЗАЩИТА
Разделы документации

ДАРА ЗАЩИТА / Документация / Защита форм

Защита форм

Как скрипт ДАРА ЗАЩИТЫ находит формы, добавляет токен и ловушку, когда показывает капчу-пазл и как защитить формы на 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() показывает капчу без подозрения — если нужна проверка вручную.