
Форма обратной связи — обязательный элемент любого современного сайта. Она помогает посетителям задать вопрос, оставить заявку или подписаться на рассылку. Однако вместе с пользователями через такие формы приходят и нежелательные гости — спам-боты. Автоматизированные скрипты рассылают рекламу, вредоносные ссылки и просто «мусорные» сообщения, загружая почтовый ящик и сервер.
Разберём основные методы защиты сайта от спама.
1. CAPTCHA и reCAPTCHA
Самый известный способ борьбы со спамом — использование CAPTCHA.
-
Классическая CAPTCHA — картинка с символами, которые нужно ввести вручную.
-
Google reCAPTCHA v2 — галочка «Я не робот».
-
Google reCAPTCHA v3 — скрытая проверка на основе анализа поведения пользователя (не мешает реальным посетителям).
Рекомендация: сегодня чаще всего используют reCAPTCHA v2 или v3, так как они удобнее для пользователей.
2. Скрытые поля (honeypot)
Приём «медовая ловушка» заключается в том, что в форму добавляется невидимое поле (например, скрытое через CSS).
-
Человек это поле не видит и не заполняет.
-
Бот заполняет всё подряд, включая невидимое поле.
-
Если оно заполнено — система определяет, что это спам, и отклоняет сообщение.
Это простой и почти незаметный для пользователя метод защиты.
3. Ограничение по времени заполнения
Реальному пользователю нужно минимум несколько секунд, чтобы ввести имя, e-mail и сообщение. Бот же может отправить форму за доли секунды.
-
Добавьте проверку: если форма отправлена слишком быстро, её стоит отклонять.
4. Фильтрация по ключевым словам и ссылкам
Многие спам-сообщения содержат:
-
большое количество ссылок,
-
стоп-слова (например, «casino», «viagra», «crypto»).
Можно создать список запрещённых слов и блокировать такие сообщения ещё до их отправки в почту.
5. Ограничение количества запросов
Чтобы бот не засыпал форму сотнями сообщений:
-
Ограничьте количество отправок с одного IP за определённый промежуток времени.
-
Используйте системы защиты от DDoS (Cloudflare, Sucuri и др.).
6. Проверка e-mail и телефона
Для заявок можно включить:
-
проверку формата e-mail,
-
валидацию телефона,
-
подтверждение через SMS или e-mail (для более важных форм, например, регистрации).
7. Использование готовых антиспам-плагинов
Если сайт работает на CMS (например, WordPress), проще всего использовать готовые решения:
-
Akismet Anti-Spam — автоматически фильтрует спам-сообщения.
-
Contact Form 7 Honeypot — добавляет «ловушки» для ботов.
-
reCAPTCHA Integration — подключает Google reCAPTCHA к форме.
Защита формы обратной связи — это не один приём, а комбинация мер.
Лучше всего работает связка: reCAPTCHA + honeypot + ограничение по времени. Такой подход минимизирует спам и почти не мешает реальным пользователям.
Если ваш сайт уже страдает от большого потока спама — начните с внедрения honeypot и reCAPTCHA, а затем добавьте фильтрацию и ограничения по IP.