Дата публикации: 25.10.2025

Как защитить сайт от спама: многоуровневая стратегия

Спам на формах — не раздражение, а угроза бизнесу. Он забивает CRM, портит репутацию почты в глазах провайдеров, создаёт ложную нагрузку на сервер и маскирует реальные заявки. Боты не «пробуют угадать» — они автоматизируют поиск форм и отправляют запросы тысячами в час.

Откуда берётся спам

  • Парсинг DOM: боты ищут <form>, <input type="email">, кнопки с submit.
  • Открытые API: если форма отправляет данные на публичный эндпоинт без проверки источника.
  • Устаревшие плагины: известные дыры в валидации или отсутствии rate-limit.
  • Отсутствие серверной фильтрации: проверка только на фронтенде легко обходится.

Многоуровневая защита

Уровень 1: Базовая фильтрация (обязательно)

  • Honeypot: скрытое поле, которое заполняют только боты. Простые формы отпадают сразу.
  • Серверная валидация: проверка формата, длины, допустимых символов. Никаких eval() или прямой передачи данных в БД.
  • Rate Limiting: ограничение на количество отправок с одного IP/сессии (например, 3 в час).

Уровень 2: Умная защита (рекомендуется)

  • reCAPTCHA v3 / Cloudflare Turnstile: оценивают поведение без кликов. Не раздражают пользователей, но блокируют автоматические скрипты.
  • Проверка referer и origin: отклонение запросов, пришедших не с вашего домена.
  • Временные токены (CSRF): каждая форма получает уникальный одноразовый токен.

Уровень 3: Продвинутая фильтрация (для высоких нагрузок)

  • WAF (Web Application Firewall): Cloudflare, ModSecurity, AWS WAF. Блокируют известные бот-сети и подозрительные паттерны.
  • Анализ поведения: задержка отправки формы, проверка времени заполнения (боты заполняют за <0.1 сек).
  • Email-верификация: подтверждение через ссылку или код, если форма критична (регистрация, заказ).

⚠️ Чего делать не стоит

❌ Ставить устаревшую CAPTCHA (v2 с картинками) на все формы — падает конверсия на 15–30%.
❌ Полагаться только на JS-валидацию — отключается в 2 клика.
❌ Игнорировать логи сервера — спам часто маскируется под легитимные запросы.
❌ Использовать «чёрные списки IP» без обновления — боты меняют адреса быстрее, чем вы обновляете правила.

Как отследить проблему

  1. Включите логирование отправок форм (IP, user-agent, время, payload).
  2. Настройте алерты при >10 отклонённых запросов в минуту.
  3. Анализируйте паттерны: одинаковые тексты, подозрительные домены в email, короткие интервалы.
  4. Тестируйте защиту через эмуляторы (Puppeteer, Postman) — убедитесь, что легитимные пользователи не блокируются.

Чек-лист минимальной защиты

  • Honeypot-поле в каждой форме
  • Серверная валидация + CSRF-токен
  • Rate-limit (IP + сессия)
  • reCAPTCHA v3 / Turnstile на критичных формах
  • Логи отправок + мониторинг аномалий
  • Регулярное обновление CMS/плагинов

Итог

Спам — управляемая проблема. Нет «волшебной кнопки», но есть система: базовая фильтрация + поведенческий анализ + мониторинг. Правильно настроенная защита убирает 95%+ автоматических заявок без ухудшения UX.

Если на сайте уже есть проблемы со спамом, можно настроить защиту и проверить формы.