Как защитить формы на сайте от спама: 7 проверенных методов
          Формы на сайте играют важную маркетинговую роль. Они помогают получить контакты лидов, стимулировать продажи и получить обратную связь от клиентов. Нередко формы становятся источником спама, и нужные письма просто теряются среди ненужных сообщений.
У нас на шаред-хостинге действует ограничение – 1 ГБ на почтовый ящик. Когда этот лимит исчерпывается, новые письма просто не доставляются. А вот на VPS и дедиках можно самому устанавливать ограничения на почтовый ящик, но все будет зависеть от общего дискового пространства услуги. Поэтому о защите почты от спама нужно позаботиться заранее.
Кроме того, что спам засоряет почтовый ящик и вам приходится тратить время на его очистку, он вызывает и другие проблемы:
- письма могут содержать фишинговые ссылки, которые являются шлюзом для распространения вредоносных файлов, скриптов и т.д.;
 - пока настоящие клиенты ждут ответа, их заинтересованность снижается;
 - спамер может имитировать клиентские запросы, поэтому нужно удалять фейковые записи из базы.
 
Далее рассмотрим 7 эффективных методов, которые помогут защитить формы от спамеров.
Кстати, у нас еще есть инструкция по созданию форм на сайте. Совместите ее с этими советами, и ваши формы будут не только защищенными, но и удобными для пользователей.
Типичные методы мошенничества через формы
Спамеры прибегают к различным мошенническим схемам. О них стоит знать, чтобы случайно не попасться на крючок.
Классическое засорение почтового ящика
Это самый простой вариант спама, когда на форму массово поступают запросы. В результате папка «Входящие» тонет в ненужных письмах, а действительно ценные запросы просто теряются. Это особенно вредно, когда форма – единственный источник коммуникации, и все запросы хранятся в одном месте.
Обход фильтров почты
Почтовые сервисы используют специальные спам-фильтры, через которые проходят письма. Например, проверка SPF, DKIM и DMARC-записей и выявление ссылок на вредоносные сайты. Форма – это обходной путь для спамера: если она плохо защищена, ее могут легко использовать для спам-рассылок или фишинговых атак. К тому же через форму с сайта запросы попадают непосредственно на корпоративную почту.
Предлагаем подробную инструкцию по созданию корпоративной почты на своем хостинге.
Реклама и оптимизация внешнего SEO
Обычно форма имеет дополнительное поле для комментария. Спамеры оставляют там свои ссылки, чтобы продвинуть сайт или получить обратные ссылки для SEO и прорекламировать товар/услугу.
Но такой метод продвижения давно не работает, ведь поисковики научились с этим бороться. Если ссылка имеет атрибут rel="nofollow" или rel="ugc", она не влияет на ранжирование. Но поскольку эти атрибуты должен добавлять сам сайт, спамеры рассчитывают на то, что защита будет отсутствовать или реализована неправильно, их схема сработает и ссылка все-таки проиндексируется.
Фишинговые ссылки
В форму могут добавлять ссылки не только на сайты спамеров, но и на вредоносные ресурсы, например:
- поддельная страница известной компании, например, фальшивый интерфейс входа;
 - сайт, который заражает компьютер вредоносным ПО;
 - страница с рекламой незаконных товаров или услуг.
 
Мошенники добавляют такие ссылки и пытаются заставить владельца сайта или менеджера, который читает заявку, кликнуть на него. А дальше он регистрируется на поддельном сайте, спамер получает его персональные данные и использует в мошеннических целях.
Поиск уязвимостей
В форму также могут вставлять строки вредоносного кода. В таком случае цель мошенников не реклама, а поиск способа взломать сайт. Самые популярные примеры:
- SQL-инъекции – злоумышленник вводит в форму специально сформированный фрагмент SQL-кода. Сервер, не обработав его должным образом, вставляет этот код в запрос к базе данных. В результате спамер может получить доступ к таблицам с персональными и платежными данными клиентов, логинами, паролями, а в отдельных случаях может даже изменять или удалять эти данные.
 - XSS-инъекции – в форму вставляют JS-код, который выполняется в браузере пользователя. Благодаря этому спамер похищает куки и логиниться в админке. Последствия разные: подмена контента, перенаправление на фишинговые сайты, выполнение действий от имени пользователя (если сессия активна) и т. д.
 
Атака на ресурсы сайта
Это та же DoS-атака, только через формы. Злоумышленник отправляет большое количество запросов и пытается перегрузить сервер. Это особенно опасно, если форма выполняет сложные операции: отправляет письма, генерирует PDF или добавляет данные в CRM. Все потому, что каждый такой запрос нагружает процессор, память и внешние сервисы. А если атака осуществляется из многих источников одновременно (это уже будет DDoS), сервер замедлится или вовсе упадет.
Подробнее о DDoS-атаках по этой ссылке.
Кстати о CRM. Если форма автоматически добавляет полученные данные туда, спам-запросы могут ее существенно засорить и придется потратить много времени на удаление ложных данных. Кроме того, из-за фейковых контактов начинают ломаться все алгоритмы аналитики и рассылок, потому что тогда письма идут на незарегистрированные адреса и эффективность рассылки снижается. В свою очередь это может повлиять на репутацию почтового домена.
Если ваш домен все же попал в спам-список, в нашей предыдущей статье есть план действий и на этот случай. Оставляем ссылку.
Фильтрация корпоративной почты
Запросы из форм, как и любые другие письма, могут содержать спам. Если почтовый сервер не имеет внешней защиты, такие письма попадают прямо в почтовый ящик. Но есть специальные антиспам-сервисы, которые их фильтруют. Мы в Хостпро предлагаем услугу защиты от спама для одного домена. Сервис защищает все почтовые ящики домена.
Как это работает? Когда поступает письмо, фильтр MailChannels проверяет его на спам. Анализируется содержание, репутация отправителя, почтовые DNS-записи и поведенческие факторы. Если система определяет, что письмо похоже на спам, оно отправляется в карантин, а владелец домена получает уведомление об этом. При необходимости письмо можно просмотреть и разблокировать в разделе «Manage Quarantine».
Плагин Contact Form 7 также защищен этим сервисом. Если формы на сайте созданы им, вредоносные письма не дойдут до почтового ящика, а будут сразу обнаружены и заблокированы.
Чтобы фильтр начал работать, нужно изменить MX-записи. То есть, вместо стандартного почтового сервиса (например, mail.example.ua) нужно указать MX-серверы MailChannels (их мы вам предоставим). Трафик почты будет перенаправлен через антиспам-сервис. Сделать это можно несколькими способами, рассмотрим пошагово:
Редактирование MX в панели управления DirectAdmin
На главной странице панели перейдите в раздел «Управление DNS».

В списке записей найдите MX и нажмите на значок редактирования.

Присвойте записи название, измените почтовый сервер и введите значение (чем больше, тем приоритетнее будет сервер). После заполнения всех полей нажмите «Сохранить».

Редактирование MX в панели управления cPanel
На главной странице найдите раздел «Домены» и перейдите в «Редактор зоны».

Нажмите «Управлять».

Перейдите на вкладку MX-записей. Если здесь уже что-то есть, нажмите «Редактировать», если нет – «Добавить запись».

Введите доменное имя, почтовый сервер и определите приоритет. Когда закончите, нажмите «Сохранить запись».

Редактирование MX в Личном кабинете хостинга
С главной страницы hostpro.ua перейдите в Личный кабинет и нажмите на вкладку «Домены».

Найдите нужный активный домен, нажмите на три точки и перейдите в «Управление DNS».

Появится окно управления DNS-записями, переключитесь на вкладку MX.

Нажмите значок редактирования.

Заполните необходимые поля и нажмите «Принять изменения».

Если какой-то шаг кажется непонятным – обратитесь в нашу техподдержку. Она поможет отредактировать MX-запись любым удобным способом.
Как предотвратить спам в формах
К счастью, существует немало методов борьбы со спамом в формах. Каждый способ эффективен по-своему, но лучше всего они работают в комплексе.
Капча
Капча (CAPTCHA) – это технология, которая позволяет определить, что запрос поступил от человека, а не от бота. Это самый простой и одновременно самый распространенный метод защиты. Капча может быть разной, например, в виде кусочков фотографии велосипеда, которые нужно сложить вместе. С такой задачей справится даже ребенок, а вот роботу это не под силу. Хотя бывают и исключения…
В то же время капча не должна быть слишком сложной и требовать много времени на решение. Например, не стоит добавлять примеры с возведением числа в пятую степень, ведь это негативно повлияет на пользовательский опыт и снизит конверсию.
Популярным решением является reCAPTCHA от Google. Чтобы добавить ее на сайт, нужно иметь гугл-аккаунт и выполнить несколько шагов:
- перейдите на сайт reCAPTCHA;
 - нажмите «Get started»;
 - введите домен сайта и выберите тип капчи (v2 или v3);
 - нажмите «Отправить».
 
На экране появятся два ключа: частный и публичный. Публичный нужно добавить в HTML-код сайта, а частный используется для связи сервера с сервисом reCAPTCHA.
Если ваш сайт на WorPress, ключи можно добавить прямо в админку. Для этого с главной страницы админпанели перейдите в меню «Связь» → «Интеграция» и нажмите «Настройки интеграции» в поле reCAPTCHA. Далее введите ключи в соответствующие поля и нажмите «Сохранить изменения». На этом все, теперь ваши формы защищены.

Есть еще одна популярная система – hCaptcha. Принцип ее работы схож с гугловской, но есть несколько отличий:
- не собирает данные пользователей;
 - платит компаниям за решение капчи пользователями;
 - содержит тесты с распознаванием изображений, которые сложнее, чем в рекапче.
 
Интересно, что некоторые боты с легкостью обходят reCAPTCHA благодаря функции озвучивания зашифрованного текста. Они используют API Google для преобразования аудио в текст, чтобы заполнить капчу. hCaptcha не имеет такой функции, поэтому она может считаться более надежной.
Антиспам-плагины
Хотя такие плагины не предназначены непосредственно для форм, они все равно защищают их, ведь работают комплексно. Если капча проверяет пользователя на этапе заполнения им формы, то плагин анализирует уже отправленные данные и определяет, являются ли они спамом. Принцип работы подобен антиспам-сервисам, плагин также проверяет:
- IP-адрес;
 - поведение отправителя;
 - частоту сообщений;
 - наличие типичных спамных фраз («только сегодня», «ваш аккаунт заблокирован»);
 - совпадение с глобальными черными списками адресов и ботов.
 
В отличие от капчи, плагины невидимы для пользователей, ведь работают в фоновом режиме. Они могут быть платными и бесплатными, а добавить их можно в админке WP. Для этого следуйте по цепочке «Главная» → «Плагины» → «Добавить новый». В строке поиска введите нужный плагин (например, Akismet, Antispam Bee, CleanTalk) и нажмите Enter. Остается нажать «Установить» и настроить его работу.

Скрытые поля (honeypot)
Этот метод предполагает добавление в форму скрытых полей, которые не видны на сайте. Фишка в том, что их заполняют только боты, ведь они невидимы для настоящих пользователей. Все потому, что бот считывает HTML-код напрямую, а не визуально, поэтому видит все элементы формы и воспринимает скрытые поля как обычные. Название honeypot говорит само за себя – боты слетаются на такие ловушки, как пчелы на мед.
Вот пример реализации таких полей в HTML:
<form action="/submit" method="post">
  <!-- Видимое поле: Имя -->
  <label for="name">Имя:</label>
  <input type="text" id="name" name="name" required>
  <!-- Видимое поле: Email -->
  <label for="email">Email:</label>
  <input type="email" id="email" name="email" required>
  <!-- Honeypot-поле -->
  <div style="position: absolute; left: -9999px;" aria-hidden="true" tabindex="-1">
    <label for="contact_code">Код подтверждения:</label>
    <input type="text" id="contact_code" name="contact_code" autocomplete="off">
  </div>
  <!-- Кнопка отправки -->
  <button type="submit">Отправить</button>
</form>Наш совет: не используйте нигде в коде слово honeypot. Некоторые боты научились это фильтровать и специально не заполняют поля, которые обозначены медовыми горшками.
В результате, если вам поступает запрос с заполненным скрытым полем, можно даже не рассматривать его, ведь это на 99,9% бот. Обычно такие запросы даже не доходят до почтового ящика, ведь срабатывает серверная валидация, которая отклоняет или сразу отправляет такие письма в спам. Пример такой проверки на PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // Если скрытое поле заполнено – это бот
  if (!empty($_POST['contact_code'])) {
    http_response_code(403);
    exit('Access denied – bot suspected.');
  }
  // Далее обработка настоящих данных
  $name = trim($_POST['name']);
  $email = trim($_POST['email']);
  // ...
}
?>Стоит помнить, что этот метод не дает полной защиты от спама, ведь существуют умные боты, которые распознают и избегают таких ловушек. Однако для борьбы с обычными и простыми ботами honeypot работает достаточно эффективно.
Блокировка формы после первого заполнения
Можно сделать так, чтобы пользователь мог заполнять форму только один раз за сеанс. Это не убережет вас от спамеров или ботов, но по крайней мере сделает невозможной массовую рассылку. Сделать это можно несколькими способами:
Через сессию
После первой отправки сервер записывает в сессию флаг (например, form_submitted = true). Если пользователь повторно отправляет форму в той же сессии, появляется сообщение «Вы уже заполнили форму».
<?php
session_start();
if(isset($_SESSION['form_submitted'])) {
    echo "Вы уже заполнили форму.";
} else {
    if($_SERVER['REQUEST_METHOD'] === 'POST') {
        // обработка формы
        $_SESSION['form_submitted'] = true;
        echo "Спасибо за заполнение!";
    }
}
?>Преимущества: достаточно просто реализовать.
Недостатки: защита не сработает, если спамер переоткроет сайт или перейдет на другой браузер/устройство.
Через cookie
Когда пользователь заполняет форму, на его компьютер ставятся куки – небольшие файлы, в которых хранятся предыдущие действия на сайтах. Если попытаться отправить повторный запрос, JavaScript проверит куки и заблокирует форму. В коде это выглядит так:
if (document.cookie.includes("form_submitted=true")) {
    document.getElementById("myForm").style.display = "none";
    alert("Вы уже заполнили форму.");
}
document.getElementById("myForm").addEventListener("submit", function() {
    document.cookie = "form_submitted=true; path=/; max-age=86400"; // 1 день
});Преимущества: работает даже после перезагрузки страницы.
Недостатки: чтобы обойти блок, можно просто перейти на другой браузер/устройство или удалить куки.
Подробнее о куки в нашей предыдущей статье.
По IP-адресу или аккаунту пользователя
На сервере хранятся IP или ID пользователей, которые уже заполнили форму. Если поступает запрос от уже сохраненного IP/ID – сервер не принимает форму во второй раз и возвращает соответствующее сообщение.
Преимущества: точнее, чем сессии и куки.
Недостатки: неточный, потому что злоумышленник может изменить IP.
Стоит заметить, что большинство современных ботов не привязано к сессиям, кукам или IP-адресам. Но даже если IP используется – у каждого бота она уникальна, поэтому эти методы могут быть только дополнительными, а не основными.
Отключение автоматических ответов
Часто владельцы сайтов создают шаблон письма, который отправляется автоматически после заполнения формы. Это удобно, ведь экономит время и ускоряет обработку заявок. Но представьте ситуацию: на форму поступает тысяча заявок в минуту, и каждая из них запускает отправку email. Это создает большую нагрузку на сервер и почтовую систему, может превысить SMTP-лимиты и даже привести к временной блокировке домена.
Этот подход не является прямым методом борьбы со спамом, но он помогает минимизировать потери во время атак. Вместо автоматических писем можно просто показывать сообщение: «Спасибо, ваша заявка принята».
Cloudflare
Cloudflare — это CDN (сеть доставки контента), которая защищает сайт от хакерских атак и улучшает его производительность. Она не предназначена непосредственно для защиты форм, но с ней на сайт попадает меньше вредоносного трафика. Основные функции:
- Защита от DDoS – IP вашего сервера скрывается, и во время атаки весь трафик проходит через серверы Cloudflare. Сайт работает в штатном режиме, а нагрузка на хостинг минимальна как в обычное время, так и во время атаки.
 - Фаервол – фильтр входящего трафика, который блокирует различные инъекции, DDoS, брутфорс и трафик от ботов. Позволяет настраивать собственные фильтры, например, блок определенных IP-адресов.
 - Базовая защита от ботов – система анализирует поведение посетителей, сравнивает его со своими знаниями о ботах и блокирует подозрительные запросы в случае совпадений.
 
Вы можете получить эту защиту бесплатно, ведь мы являемся официальным партнером компании Cloudflare. Для этого необязательно иметь еще какую-либо нашу услугу, но если вы хостите у нас свой сайт, будет удобно управлять всеми функциями в одном кабинете.
А у нас еще и инструкция есть по подключению Cloudflare к своему сайту.
Использование большего количества полей
Пользователи Reddit часто советуют добавлять больше полей в форму. Особенно эффективны поля, которые отличаются от текстовых, например, выпадающие списки. Если сделать такое поле обязательным, бот не сможет отправить форму без его заполнения.
Почему это работает?
- Некоторые боты рассчитаны на простые формы с несколькими полями: имя, номер телефона, город. Если добавить поля «должность», «email» и «комментарий», боту будет сложнее обработать форму.
 - Можно добавить проверку корректности данных, ведь большое количество полей заставляет бота выдумывать информацию. Например, номер телефона должен быть числовым, а email должен иметь формат [email protected].
 - Некоторые спамеры работают по принципу: больше полей = больше денег на заполнение. Все потому, что более длинные формы требуют больше ресурсов: дополнительных операций, проверок капч, имитации поведения, прокси и т. д. То есть атаковать такие формы менее выгодно.
 
Однако есть одно большое «но». Если добавить слишком много полей, пользователи могут отказаться заполнять форму. Сегодня люди перегружены многоканальным маркетингом, поэтому если процесс покупки занимает слишком много времени, они могут легко перейти к конкурентам.
Это не значит, что метод добавления полей нужно отбросить. Попытайтесь найти баланс между защитой и удобством. Добавляйте те поля, которые действительно нужны для идентификации лидов, например, место жительства, должность, возраст и т. д.
Подведем итоги
Современные боты становятся все умнее: они умеют имитировать поведение настоящих посетителей, и их становится все труднее обнаружить. Поэтому к защите форм нужно подходить комплексно и обеспечивать многоуровневую проверку.
Напоследок оставляем еще одну полезную статью: как обнаружить вредоносный трафик ботов на сайте и заблокировать его.
Надеемся, наша статья была полезной и вы наконец-то избавитесь от бесконечного потока фейковых данных из своих форм.
Возможно, вас заинтересует
Когда бизнес выходит на международный рынок, расширяется его клиентская база, растут продажи и повышается...
Чтобы электронная коммерция была успешной, бизнесу необходимо иметь собственный интернет-магазин с удачным доменом и...
Обычно разработка полноценного сайта – довольно хлопотный процесс, который требует значительных финансовых вложений, времени,...
    
    
    
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться