captcha

Всем привет! Сегодня небольшая заметочка о капче в форме. Будет кратко и по делу.

В любой форме нам необходима защита от спам ботов — это аксиома. Самым эффективным методом борьбы с ботами является капча. Существует очень много разных видов капчи, не мне вам рассказывать про это. Самой эффективной наверно считается капча от гугла. Но какая же она сложная..Да, чем сложней — тем надежней, но для пользователя это дико неудобно согласитесь.

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

Общий принцип такой — отправляем аякс запрос и генерируем ключ, который потом сверяем с пришедшим значением. Боты не умеют отправлять аякс запросы, сделать это может лишь пользователь сайта. Таким образом мы отсечем всех роботов без лишних телодвижений от пользователя.

Перед отправкой аяксом формы вызываем функцию getCkey, куда передаём объект формы.

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

Файл куда отправляем аякс для генерации ключа для битрикса будет выглядеть так:

Его единственная задача это сгенерировать рандомный ключ.

В обработчике формы сверяем ключи, а также проверяем чтобы поле cname было пустым:

На этом все, надеюсь статья была для вас полезной).