Honeypot — самый эффективный антиспам для Contact Form 7
Ко мне очень часто обращаются с просьбой помочь защитить сайт от спама в формах Contact Form 7. Показываю самый простой и самый эффективный способ борьбы со спамом.
С атакой спам-ботов может столкнуться абсолютно любой сайт, независимо от его платформы, тематики, региональной принадлежности, языка и посещаемости. Ничего страшного в этом нет, но проблему лучше решить. Сама она не уйдёт и будет прогрессировать.
Кто и зачем рассылает спам
Вручную спамят в формы очень редко какие-то уж совсем отчаянные люди. А привычный всем спам по формам осуществляет специальное ПО, т.н. спам-боты. Они ходят по всем подряд сайтам, сканируют их на наличие форм, формируют базы и в нужный им момент атакуют. Попасть в базу к спамерам проще простого и застраховаться от этого практически невозможно. С помощью спама в основном рекламируются товары и услуги не прошедшие модерацию легальных рекламных систем. Судя по тому насколько активно работают спамеры, рынок этот жив и востребован. Кроме этого, часто с помощью спама доставляется вредоносное ПО. Бороться с ручным спамом бессмысленно, а вот со спам-ботами бороться можно и даже нужно. Как минимум потому, что это ненужный трафик, генерация ненужной нагрузки на веб-сервер и почтовый сервер.
Как защититься от спама
Способы защиты бывают разные, самый популярный — капча, но у нее есть два больших минуса. Во-первых, капча портит дизайн страниц. Во-вторых, от простой капчи толку ноль и она легко обходится. А сложную капчу не так просто разгадать. Не у всех идеальное зрение и хорошие дисплеи. Естественно, часть посетителей просто откажется от совершения действия, что категорически недопустимо. Популярная рекапча Гугла (Google reCAPTCHA), которая кстати интегрирована в Contact Form 7, тоже не панацея. Вторую версию рекапчи давно уже обходят все более-менее продвинутые спам-боты, третью — пока еще не все, но тоже многие.
Я давно разочаровался во всех этих капчах, искал более эффективные решения, много экспериментировал и в итоге нашел — Honeypot.
Что такое Honeypot
Honeypot в переводе с английского «горшочек с мёдом». Не знаю насколько правда, но в блоге Касперского утверждается, что этот образ пришел из мира шпионов: Мата Хари и другие шпионки вступали в отношения с мужчинами, чтобы выведать у них секретную информацию. В мире кибербезопасности термином Honeypot называют ловушки для хакеров. Задача Honeypot — подвергнуться атаке или несанкционированному исследованию, что впоследствии позволит изучить стратегию злоумышленника и определить перечень средств, с помощью которых могут быть нанесены удары по реально существующим объектам безопасности. Реализация Honeypot может представлять собой как специальный выделенный сервер, так и один сетевой сервис, задача которого — привлечь внимание взломщиков (Википедия).
Honeypot в контактных формах
Смысл Honeypot в формах связи сводится к одному: создать невидимое для пользователей поле (или несколько полей), присвоить им какие-нибудь осмысленные имена, типа «номер телефона», «служебный телефон», «почтовый адрес» и ждать «жертву». Пользователи эти поля видеть не будут и, соответственно, не будут их заполнять. А спам-боты их увидят и обязательно заполнят. Уже на этом этапе такого «посетителя» можно блокировать и отправлять в черный список.
Плагин Honeypot для Contact Form 7
Для Вордпресс существует плагин-дополнение к Contact Form 7 от канадской веб-студии Nocean с одноименным названием «Honeypot for Contact Form 7».
Плагин очень простой. Он позволяет создавать невидимые для пользователей поля, при отправке формы проверяет их на заполненность и если поле заполнено, сообщение блокируется.
Кроме этого, с версии 2.1 у плагина появилась еще одна очень полезная функция задавать минимальное время на заполнение формы. Спам-боты заходя на страницу сайта, практически сразу отправляют форму. Иногда для обхода защит задаются небольшие задержки на 1-2 секунды, не больше. Реальному же человеку на заполнение формы обычно требуется больше времени. Если задать, например, пять секунд, все сообщения отправленные в течение пяти секунд после загрузки страницы будут заблокированы.
Как пользоваться плагином Honeypot для Contact Form 7
Способы использования плагина могут быть разными, я покажу свой реальный боевой пример, который я устанавливаю на свои и клиентские сайты.
В шаблон формы я добавляю поле с именем wpcf-email
, задаю ему класс и айди email
, чтобы оно выглядело, как реальное поле для ввода электронной почты.
[honeypot wpcf7-email id:email class:email move-inline-css:true nomessage:true]
Боты тупые, очень хорошо ведутся на такую приманку и обязательно заполнят это поле. Они знают, что без электронной почты форма редко валидируется. Только не забудьте проверить имя поля настоящей электронной почты — они не должны совпадать.
Кроме этого, я всегда дополнительно устанавливаю защиту по времени.
На большие формы можно ставить больше времени, на небольшие — меньше.
Разработчик рекомендует устанавливать четыре секунды, я обычно устанавливаю пять.
В заключение
Вместо заключения напомню, что если вам не удается самостоятельно защититься от спама в Вордпресс или с вашим сайтом возникли какие-то другие проблемы — обращайтесь.
Мой телеграм: @danilin.
Фулстек веб‑разработчик, специализируюсь на платформе WordPress
Подробнее-
Интересное решение! Спасибо! Тоже замучились со спамом…