Спам через формы сайта: как остановить, не отпугнув клиентов
Спам в формах — это не только мусор в почте: он забивает CRM, портит статистику и заставляет менеджеров тратить время на несуществующих клиентов. Разбираем меры, которые останавливают ботов, не мешая живым людям.
Содержание
Спам-боты заполняют формы по одному сценарию: находят форму, отправляют данные напрямую на обработчик, повторяют. Меры ниже отсекают их на разных этапах — и почти не затрагивают живых посетителей.
Мера 1. Honeypot — поле-ловушка
Самая полезная мера при минимальных затратах. В форму добавляется поле, скрытое от человека, но видимое роботу:
- поле в разметке есть, но спрятано стилями и помечено
aria-hidden; - человек его не видит и не заполняет;
- бот заполняет все поля подряд;
- обработчик считает заявку спамом, если поле не пустое.
Важно: скрывать нужно так, чтобы поле не попадало в порядок табуляции (tabindex="-1") и не подхватывалось автозаполнением браузера.
Мера 2. Время заполнения
Человек не отправляет форму за полсекунды. Бот — отправляет. В форму кладётся метка времени открытия, обработчик проверяет разницу:
- меньше 2–3 секунд — почти наверняка бот;
- слишком большая разница (сутки) — страница висела открытой, метку стоит обновлять.
Мера 3. Ограничение частоты по адресу
Одна и та же машина не должна отправлять десять заявок в минуту. Простое правило на стороне сервера:
- не более N отправок с одного адреса за период;
- при превышении — вежливый отказ, а не молчание.
Слишком жёсткий лимит опасен: за одним адресом может быть офис из двадцати человек.
Мера 4. Проверка источника запроса
Обработчик проверяет, что запрос пришёл с вашего сайта, а не откуда угодно:
- заголовок
Refererсодержит ваш домен; - запрос отправлен методом POST;
- поля соответствуют ожидаемым.
Это не защита от целевой атаки, но массовые рассылки отсекает.
Мера 5. Обязательное согласие
Отметка согласия на обработку персональных данных нужна по закону — и заодно добавляет шаг, который часть ботов не проходит. Ставить её заранее отмеченной нельзя: это нарушение и снижает ценность меры.
Мера 6. Нормализация телефона на стороне сервера
Полезно не только против спама: сервер приводит номер к единому формату и отбрасывает мусор. Если после нормализации в номере меньше десяти цифр — заявка не проходит.
Отдельно проверьте маску телефона на стороне клиента: у нас была ошибка, когда маска резала цифры и номер +7 900 000-00-06 превращался в +7 (790) 000-00-00. Формально заявка выглядела нормальной — а дозвониться было невозможно.
Мера 7. Капча — только если не помогло остальное
Капча снижает конверсию и раздражает. Если ставите — используйте невидимые варианты и следите за долей отказов после её появления.
Что сделать, если спам уже идёт
- Посмотрите почерк: одинаковые имена, ссылки в тексте, один и тот же адрес, время отправки.
- Включите honeypot и проверку времени — обычно этого хватает.
- Настройте фильтр в CRM: спам не должен попадать в общую воронку и портить конверсию.
- Проверьте, не открыт ли обработчик для внешних запросов без проверки источника.
- Проверьте сайт на заражение: иногда спам через формы идёт с самого сайта.
Как проверить, что защита не мешает клиентам
Любая мера проверяется живой отправкой формы — с телефона и с компьютера, в разных браузерах. Мы делаем так: отправляем заявку, находим её в CRM и сверяем значения полей. Пока этого не сделано, считать форму рабочей нельзя.
Частые вопросы
Капча решает проблему?
Частично. Современные боты обходят простые капчи, а живые люди на них спотыкаются — особенно с телефона. Мы ставим капчу последней мерой, когда более мягкие способы не справились.
Почему спам пошёл внезапно?
Обычно сайт попал в чей-то список целей: бот прошёлся по адресам форм. Это не значит, что вас взломали, но проверить сайт стоит.
Может ли антиспам резать настоящие заявки?
Может, если настроен грубо: слишком жёсткий лимит по частоте или проверка на «подозрительные» слова. Поэтому каждую меру мы проверяем живой отправкой формы.
Что делать со спамом, который уже в CRM?
Пометить и закрыть, но не удалять сразу: по нему видно почерк рассылки и можно настроить фильтры. И обязательно исключить из отчётов, иначе конверсия будет посчитана неправильно.
Помогает ли скрытие адреса обработчика?
Нет. Адрес виден в коде страницы. Работают проверки на стороне сервера, а не попытки спрятать endpoint.
Не хотите разбираться сами?
Настроим, обновим и почистим сайт на 1С-Битрикс. Официальный партнёр Битрикс и Аспро, 20 лет в разработке.
Оставить заявку 8 (800) 555-31-56