Защита от спама для сайтов на WordPress в Contact Form 7

Дневник разработчика
Небольшой обзор настроек для защиты от спама. Актуально для сайта под управлением cms Wordpress, в котором формы работают на базе плагина Contact Form 7. По итогу прочтения статьи вы начнёте понимать как бороться со спамом на вашем сайте и получите пошаговое руководство для самостоятельной настройки сайта для защиты от спама.

Немного предыстории

Для большинства сайтов, котоыре я делаю под заказ нет сложного функционала или большого объёма страниц. Поэтому, для комфортной работы с сайтом я использую CMS WordPress. Он мне нравится, потому что прост и понятен любому пользователю, на него есть очень много готовых решений в виде плагинов и в целом я уже давно работаю с этой CMS.

На сайты под управлением WordPress обычно устанавливаю редактор форм обратной связи Contact Form 7. Сейчас аналогов много, но этот плагин один из самых популярных и по нему есть хорошая документация на сайте разработчика.

Дале если что то не нахожу — всегда можно почитать документацию или найти видео-ролики с похожими проблемами и решением на toutube.

Сегодня работал над одним из клиентских сайтов. Занимаются натяжными потолками. Ранее у них сайт работал на CMS October — я же его разрабатывал. Но меня окончательно достало расширение для каталогов и интернет магазинов Шопоголик и я их логику в гробу видал. Да и Laravel пока рановато мне изучать. По любой фигне приходилось кого то искать, что бы помогли доработать. А это денежка.

В общем, решили перенести сайт на WordPress, потому что там все понятно и никого просить не нужно. НА этой CMS есть приятный и крутой Woocomerce, с которым я довольно быстро освоился и в целом можно самостоятельно не только сверстать новые страницы, но и перенести на CMS? прикрутить магазин с системой оплаты и каталог развернуть с формой заказа в один клик.

Откуда берутся со спамом в формах Contact Form 7

Как только я залил сайт на домен — начались сыпаться спам-заявки. буквально сразу. Естественно я озадачился решением проблемы. Естественно начал вспоминать о том, где и что делал ранее. Вспомнилось мне отличное видео Артёма Абрамовича на его youtube канале. Оно так и называлось: Contact Form 7. Методы борьбы со спамом.

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

Если у вас сайт работает под управлением CMS WordPress и для форм обратной связи вы используете плагин Contact Form 7, то вам нужно знать и учитывать некоторые нюансы:

WordPress очень популярная CMS. Это значит что в мире существует очень много сайтов, которые во многом похожи друг на друга. Следовательно они используют одни и те же блоки кода, одинаковые плагины (все мы выбираем то что уже проверено и популярно у пользователей). Но самое скверное в этой ситуации, что большинство разработчиков которые работают с CMS WodPress не меняют настройки, которые стоят по умолчанию. Это и есть основная проблема большого количества спама и уязвимостей в целом.

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

Но есть в этом и хорошая новость. Если вы не хотите получать спам — вы можете как минимум просто и бесплатно защититься от подобных ситуаций. Решение очень простое, но при этом и крайне эффективное — меняйте настройки на свои собственные. Модифицируйте имена и подписи, заполняйте описание, потратьте немного больше времени на то, что бы грамотно выбрать опции в параметрах настройки сайта в админке.

Как перенастроить формы на сайте, что бы спама стало меньше

Но давайте вернёмся к нашему плагину Contact Form 7 и нашему списку доработок для защиты от спама.

Прежде всего вам нельзя использовать в формах стандартные имена и классы для полей ввода. Обратите внимание на то, как выглядят стандартные поля

Защита от спама для сайтов на WordPress в Contact Form 7

Начните с того что переименуйте эти имена полей и больше никогда не используйте их в своих формах. Лучше придумайте свои уникальные имена.

Настройка и активация встроенной в contact form 7 защиты от спама google recaptcha

После того как значения по умолчанию максимально проработаны можно озадачиться следующей линией защиты — установка RECaptcha v3. Эта защита от спама распространяется на весь ваш сайт и она уже встроена в плагин CF7. Вам нужно всего лишь настроить опции.

Для настройки защиты от спама reCAPTCHA от google вам нужно сделать две вещи:

  1. Зарегистрироваться/авторизоваться на сайте reCAPTCHA https://www.google.com/recaptcha/about/
  2. Добавить в кабинете reCAPTCHA свой сайт https://www.google.com/recaptcha/admin/create
  3. скопировать полученные при добавлении сайта ключи
  4. добавить их в соответствующие поля на вашем сайте
Защита от спама для сайтов на WordPress в Contact Form 7
Для добавления ключей google recaptcha перейдите в раздел интеграции в настройках плагина contact form 7.

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

Защита от спама для сайтов на WordPress в Contact Form 7
Блок от google recaptcha показывается блоку в нижней части экрана. При наведении на него курсором мыши, блок показывается полностью.

Если вам, как и мне это не очень нравится, то вы можете спрятать его при помощи стилей. Но вам важно понимать, что для того что бы ваши стили работали правильно, необходимо прописать их в настройках темы.

Опция темы «Дополнительные стили», которая присутствует в большинстве современных тем для WordPress, позволяет вставить стили напрямую в код страницы, а не в отдельном подключаемом файле, как стили темы. Тем самым ваши стили имеют больший вес и приоритет при отображении страниц сайта.

Они переопределят стили, которые уже есть у блока с google recaptcha.

Защита от спама для сайтов на WordPress в Contact Form 7
В настройках большинства тем для wordpress есть опция «Дополнительные стили».

Вот фрагмент кода, который я использую для того что бы спрятать блок google recaptcha:

.grecaptcha-badge {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
}

Что еще можно сделать для защиты от спама: настройка плагина Akismet

Закончили настройку плагина Contact Form 7 и активировали google recaptcha, супер! Теперь приступаем к третьему пункту — настройка дополнительного плагина Akismet Anti-Spam. Обращаю ваше внимание на то, что изначально, при установке WordPress этот плагин уже установлен, но его часто удаляют.

Если у вас он не установлен — простой зайдите в раздел плагины и установите его на ваш сайт.

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

Работает защита очень просто. Если в вашей форме есть поля, которые проверяет плагин Akismet Anti-Spam, то алгоритм действий следующий:

  1. Посетитель заполняет поле формы
  2. Плагин Akismet Anti-Spam проверяет введённые в поле данные сверяя их со своей базой
  3. Если данные упоминаются в базе Akismet Anti-Spam — отправка данных из формы блокируется плагином.

Теперь более детально к настройкам плагина Akismet Anti-Spam

Для того что бы плагин начал работать, после установки его нужно активировать. для активации необходимо получить персональный ключ. Ключ можно получить после регистрации на сайте Akismet Anti-Spam. Он присылается на вашу почту, указанную при регистрации, поэтому при регистрации на их сайте используйте реальные данные, а не фэйк.

Для того что бы плагин проверял ваши поля в формах, нужно добавить в эти поля доп. опцию. Её можно добавить при создании поля.

Защита от спама для сайтов на WordPress в Contact Form 7
Для добавления опции проверки данных достаточно добавить галочку в соответствующем поле при создании поля.
Защита от спама для сайтов на WordPress в Contact Form 7
Либо вставить этот параметр вручную.

Обратите внимание, что этот параметр можно вводить ТОЛЬКО В ТЕКСТОВЫЕ ПОЛЯ И ПОЛЯ ЭЛЕКТРОННОЙ ПОЧТЫ. Не вставляйте эту опцию в поля, которые не предусмотрены по умолчанию — это повлияет на работоспособность формы и отображение поломанных полей на сайте.

Подведём итог

для защиты форм обратной связи, работающих на базе плагина contact form 7 нужно выполнить три задачи:

  1. Заменить все имена полей в формах. Придумать уникальные имена, которые есть только на вашем сайте.
  2. Активировать предустановленную в плагин Contact form 7 защиту reCAPTCHA V3. для этого потребуются ключи, которые получают при регистрации сайта на сервисе Google reCAPTCHA.
  3. Установить и активировать плагин Akismet Anti-Spam и добавить во все текстовые поля дополнительный параметр
Юрий Ронин