Борьба со спамом в Contact From 7

Борьба со спамом в Contact Form 7

Проблема спама через Contact Form 7 существовала всегда. Но раньше как-то не случалось мощных атак. Время от времени одно-два письма — это не спам. Но тут разверзлось. В день стало сыпаться по несколько десятков писем непонятного содержания.

Через два дня всё стихло. Стало ли это результатом нашего противодействия или «враги» выдохлись — пока неясно, но опишу здесь тезисно те шаги, которые мы предприняли. Быть может какие-то из них помогут вам победить.


Инструменты борьбы со спамом

  1. Akismet
  2. reCaptcha
  3. Honeyspot
  4. Чёрный список
  5. Скрытые поля формы
  6. Формы от CRM

Akismet

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

Атака была начата в середине апреля. На тот момент Акисмет отфильтровал больше 200 спам-писем. Детальной статистики по дням нет, поэтому надеюсь, что и спам дошёл до нас не весь благодаря этому плагину.

Напомню, что для использования Акисмет в формах CF7, в шорткоды добавляются параметры:

  • Для проверки поля имени: [text* your-name akismet:author]
  • Для проверки почты: [email* your-email akismet:author_email]
  • Для проверки ссылки: [text your-url akismet:author_url]

Подробнее здесь.

reCaptcha от Google

Не повлияла на количество приходящего спама никак. Вообще. Подключали через встроенную в CF7 интеграцию. Процесс быстрый, но бесполезный. Плюс выводит плавающую иконку реКапчи, которая раздражает.

Сознательно не стали подключать реКапчу версии 2 с галочкой «Я не робот», чтобы не убить конверсию от обычных пользователей.

Если решите использовать, инструкция по настройке здесь.

Honeyspot

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

Вот с такими настройками количество спама существенно снизилось, но не прекратилось:

Настройки плагина Honeyspot

В каждую форму необходимо добавить тег скрытого поля. Выглядит так: [honeypot honeypot-372]

Чёрный список

Подсмотрел у «Типичного айтишника» способ, позволяющий CF7 срабатывать на спам, когда содержимое письма соответствует чему-либо из чёрного списка из настроек самого WordPress.

Собственно, это никак не повлияло на количество прилетающего спама, но, добавив этот метод, мы положили конец ложным срабатываниям на спам самого Contact Form 7, когда форму отправляет живой человек и CF7 по каким-то одному ему ведомым алгоритмам определяет письмо как спам.

В functions.php добавляем строку:

add_filter('wpcf7_spam', '__return_false');

После чего CF7 при проверке формы на спам будет сверяться с чёрным списком из настроек WP. Если он у вас проработан и заполнен, этот метод таки позволит отсечь какую-то часть нежелательных писем.

Скрытые поля формы

Итак, у нас уже работает Akismet и Honeyspot. Добавив ещё одну галочку acceptance, мы победили спам. Ну или нам так кажется и просто прекратилась атака.

Настраивается стандартными средствами CF7. В настройках формы добавляем ещё одну галочку согласия:

<div class="acceptance-fos">[acceptance acceptance-550 invert default:off] Я б0t, поэтому я отмечаю эту галочку, чтобы форма отправилась. [/acceptance]</div>

Я обернул её в div, чтобы скрыть от обычных пользователей стилями. Плюс, сделал галочку отключенной по умолчанию, чтобы бот на неё таки «нажал». И инвертировал поведение — чтобы форма отправилась, галочка должна быть снята.

Здесь же в настройке формы добавил стили скрытия галочки:

<style>
.acceptance-fos {
    display: none
}
</style>

Во вкладку «Дополнительные настройки» добавил параметр, включающий валидацию полей, чтобы состояние галочек принятия проверялось до отправки формы: acceptance_as_validation: on

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

Формы от CRM

Нашёл этот метод у веб-студии Beyond. На атакованном сайте у нас была интеграция Contact Form 7 с AmoCRM, поэтому попробовали этот метод — вместо форм CF7 вставили формы Амо.

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

Подведу итог

Бомбардировка спамом прекратилась после введения связки Akismet + Honeyspot + скрытая галочка принятия.

Надеюсь, вам поможет. Если у вас есть другие проверенные способы борьбы с нежелательными письмами, делитесь в комментариях.

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

Ваш адрес email не будет опубликован.