Не видимая защита от спама для Contact Form 7

Не видимая защита от спама для Contact Form 7

Приветствую вас, дорогие друзья!

В одной из моих прошлых статей я рассказывала вам о способах защиты от спама для форм обратной связи Contact Form 7.

С данной статьей вы можете ознакомиться, перейдя по этой ссылке:«Защита от спама для Contact Form 7 WordPress»

Все показанные в этой статье способы защиты рабочие, но каждый из них имеет те или иные недостатки. Так, например, поля «acceptance» и «quiz» не являются достаточно надежными, так как боты развиваются и уже способны обойти защиту, сделанную на основе этих полей.

Если же говорить о Google ReCaptcha, то здесь ситуация кардинальным образом отличается. На сколько мне известно, на данный момент нет более надежной защиты от спама, чем Google ReCaptcha. Но данный вид защиты тоже имеет свои существенные недостатки:

  • Внешний дизайн и размер. Google ReCaptcha занимает очень много места в форме обратной связи. Особенно это критично во всплывающих формах.
  • У Google ReCaptcha очень большие проблемы с адаптивностью. Точнее, она совсем не адаптируется.
  • Заполнение Google ReCaptcha зачастую вызывает у пользователей неудобство.

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

Как вы знаете, у Google так же есть Invisible ReCaptcha, которая как раз и предназначена для выполнения данных функций. То есть, она не видима и автоматически определяет, кто заполняет форму, робот или реальный пользователь. Но я уже несколько раз, на разных сайтах, сделанных на WordPress, пыталась настроить Invisible ReCaptcha. У меня она не работает.

Поэтому, задавшись поиском альтернативного решения, мне удалось найти невидимую для пользователя защиту от спама, сделанную на основе скрипта и которая действительно работает.

Невидимая защита от спама

Смысл работы данной защиты в следующем:

  1. 1.При создании формы в Contact Form 7 на вкладке «Шаблон формы» мы вставляем поле acceptance (принятие) со следующими параметрами:

    class:agree – присваиваем полю класс agree
    default:on – по умолчанию поле отмечено галочкой
    invert – отправка формы происходит при снятой галочке

    Вы можете скопировать и использовать мой шорт код. Или же можно сгенерировать шорткод заново. Для этого кликаем по кнопке «принятие» и в открывшемся окне заполняем поля, как показано на скриншоте:

    Как сгеннерировать поле принятие
  2. 2.Переходим в раздел «Внешний вид»«Редактор» или подключаемся по FTP к нашему сайту и открываем файл footer.php, пролистываем в самый конец документа и перед закрытием тега </body> вставляем данный фрагмент кода:

    О том как пользоваться текстовым редактором Notepad++ вы можете прочитать в этой статье: «Редактирование файлов сайта в Notepad++»

    Сохраняем документ и в браузере открываем страницу с нашей формой. Должно получиться как-то так:

    Форма с полем принятие

    Логика работы защиты заключается в следующем:

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

  3. 3.Для того, что бы пользователь не видел данное поле, нам нужно в текстовом редакторе NotePad++ открыть файл style.css активной темы и скрыть класс agree:

    Открыть этот файл можно так же в разделе «Внешний вид»«Редактор» — файл «Таблица стилей (style.css)». Код добавляем в самом конце.

    В итоге мы получаем чистую и красивую форму со скрытой защитой от спама.

    Форма со скрытым полем принятие

Доработанная защита от спама

Данный вариант отлично справляется со своей задачей. Но в процессе использования выявился один недостаток. Почему то, данный скрипт не работает с последними версиями Contact Form 7, начиная с версии 5.0.

Это связано с тем что в новых версиях плагина код для полей формы генерируется немного по другому. Поэтому я немного переделала скрипт, и изменила функцию, которая снимает галочку с поля acceptance при загрузки формы. Вот, что у меня получилось:

Логика работы защиты от спама не поменялась. Подключение скрипта так же происходит в файле footer.php, перед закрытием тега </body>.

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

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

А на сегодня все! До встречи в следующих статьях!

С уважением Юлия Гусарь

Читайте также:

Подписаться на рассылку

4 комментария

  1. Что-то я не понял, как вычисляется бот при скрытом поле? И бот и пользователь оба не видят его и не применяют никаких действий.

    Обычно я создаю форму совместно и akismet.

    • Пользователь поле не видит, и оно остается не заполненным — происходит нормальная отправка сообщения. Бот видит скрытое поле и заполняет его, из-за чего сообщение не отправляется.

  2. Не работает

     

    <script>

    jQuery(document).ready(function($) {

    $(«.agree input»).trigger(‘click’);

    });

    </script>

    • Здравствуйте! Нужно более детально смотреть Ваш сайт чтобы понять причину. Кеширование не стоит на хостинге или на сайте? Другие скрипты, добавленные в этом же месте темы нормально работают?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_bye.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_good.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_negative.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_scratch.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_wacko.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_yahoo.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_cool.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_rose.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_smile.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_whistle3.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_yes.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_cry.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_mail.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_sad.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_unsure.gif 
//impuls-web.ru/wp-content/plugins/wp-monalisa/icons/wpml_wink.gif