Спам через формы сайта: как защититься и не потерять настоящие заявки
Короткий ответ: от спама через формы защищаются слоями. Сначала то, что посетитель не видит: скрытое поле-ловушка, проверка времени заполнения, ограничение частоты и проверка данных на сервере. Капчу добавляют, только если этого мало, и предпочтительно невидимую: задание видят лишь подозрительные посетители. Для российского сайта с персональными данными разумнее российский сервис капчи — например, Яндекс SmartCaptcha.
Откуда берётся спам в формах?
Почти весь спам в формах отправляют программы, а не люди: они обходят сайты, находят форму и заполняют её рекламой, ссылками или мусором. Реже форму используют, чтобы рассылать письма от имени вашего сайта или проверять украденные номера и почты. Чем дольше сайт живёт без защиты, тем больше он попадает в базы ботов.
Типичные источники:
- Массовые боты. Заполняют все поля подряд, вставляют ссылки на сомнительные сайты, отправляют форму сразу после загрузки страницы.
- Рассылка через форму. Если форма отправляет копию письма на адрес, который указал посетитель, бот подставляет чужие адреса — и ваш сервер рассылает спам от вашего имени.
- Ручной спам. Люди за копейки вручную предлагают «продвижение» и «базы клиентов». Это не остановит ни одна капча — только фильтр по содержанию.
- Атаки на форму входа и регистрации. Подбор паролей, создание фейковых аккаунтов. Это уже не спам, а безопасность, и защищаться надо строже.
Почему это не мелочь. Мусорные заявки засоряют CRM, и менеджеры тратят время на разбор. Если форма шлёт письма, почтовый сервис может начать считать ваш домен источником спама — и тогда настоящие письма с сайта перестают доходить. Ботовые «заявки» засчитываются в цели Метрики: реклама оптимизируется на мусор, а отчёты показывают конверсию, которой нет. Как настроить цели так, чтобы считать только реальные обращения, мы разбирали в статье о целях Метрики для заявок.
Какие методы защиты работают без капчи?
Четыре метода, которые посетитель не замечает: скрытое поле-ловушка, проверка времени заполнения, ограничение частоты отправок и проверка данных на сервере. Вместе они отсекают большую часть автоматического спама на сайте компании, ничего не усложняя для клиента. Капча нужна, когда спам настроен под конкретный сайт.
Скрытое поле (honeypot). В форму добавляют поле, которое человек не видит, а бот видит в коде и заполняет. Если поле пришло непустым — заявку отбрасывают. Важные детали: поле прячут через стили, а не атрибутом, который бот легко распознаёт; у него не должно быть «понятного» браузеру имени вроде email или phone, иначе его заполнит автозаполнение — и вы отбросите настоящего клиента.
Проверка времени. При загрузке страницы форма запоминает момент, при отправке сервер сравнивает. Человек заполняет форму из двух полей за несколько секунд, бот — за доли секунды. Порог ставят небольшой, около двух-трёх секунд: если поставить десять, отсечёте тех, кто вставил телефон из буфера обмена.
Ограничение частоты. С одного адреса нельзя отправить больше, скажем, пяти заявок за десять минут. Это гасит массовые отправки и перебор. Лимит не делают слишком жёстким: из офиса с общим интернетом могут писать несколько сотрудников.
Проверка на сервере. Все проверки, которые сделаны только в браузере, бот обходит, отправляя данные напрямую. Поэтому сервер повторно проверяет формат телефона и почты, длину полей, наличие ссылок в имени, лишние поля, которых в форме нет. Сюда же — правило против рассылки через форму: никогда не отправлять письмо на адрес, который ввёл посетитель, без подтверждения.
| Метод | Что ловит | Чем мешает людям |
|---|---|---|
| Скрытое поле (honeypot) | Простых ботов, которые заполняют все поля подряд | Ничем, если поле скрыто правильно и не попадает в автозаполнение браузера |
| Проверка времени заполнения | Ботов, отправляющих форму через доли секунды после загрузки | Ничем при разумном пороге; слишком высокий порог отсекает тех, кто вставил текст из буфера |
| Ограничение частоты | Массовые отправки с одного адреса, перебор | Может задеть офис, где много людей выходят в интернет с одного IP |
| Проверка на сервере | Мусор в полях: ссылки, латиницу в имени, неверный телефон, лишние поля | Ничем, если правила мягкие и ошибка объясняется человеку понятным текстом |
| Видимая капча | Большую часть автоматических отправок, включая настроенные под ваш сайт | Лишний шаг; часть людей уходит, особенно с телефона |
| Невидимая капча | То же, но задание видят только подозрительные посетители | Почти ничем; задание может внезапно появиться у человека с VPN или старым браузером |
Когда нужна капча и какую выбрать?
Капча нужна, когда спам проходит базовые проверки: его отправляют программы, настроенные под ваш сайт, или атакуют вход и регистрацию. Для форм заявок — невидимая капча, для входа и восстановления пароля — обычная. Российскому сайту с персональными данными удобнее российский сервис: меньше вопросов по 152-ФЗ.
Самый доступный российский вариант — Яндекс SmartCaptcha в Yandex Cloud. На октябрь 2026 года тарифицируются только успешные проверки токена на сервере; в примере расчёта на странице тарифов первые 10 000 запросов в месяц вычитаются из суммы, дальше — 109,8 руб. за 1 000 запросов с НДС, а свыше 100 000 в месяц — 76,86 руб. за 1 000. Форма заявок небольшой компании часто не выходит за эти первые 10 000 запросов, но тарифы меняются — перед подключением проверьте актуальную страницу.
У SmartCaptcha есть невидимый режим: кнопки «Я не робот» на странице нет, проверка запускается при отправке формы, задание показывают только подозрительным посетителям. Сервис по умолчанию выводит на странице небольшой блок со ссылкой на условия обработки данных. Его можно скрыть, но тогда, по документации, пользователя нужно уведомить об обработке данных другим способом — например, строкой у кнопки отправки.
Почему иностранная капча хуже для российского сайта. Любая капча собирает сведения о посетителе: IP-адрес, данные браузера, поведение на странице. У иностранного сервиса они уходят на зарубежные серверы. Если форма собирает персональные данные, это ставит вопрос о 152-ФЗ: статья 12 требует уведомить Роскомнадзор о намерении вести трансграничную передачу, а часть 5 статьи 18 — записывать данные граждан России в базы на территории России. Отдельно — риск, что зарубежный сервис станет недоступен и форма перестанет отправляться вовсе. Подробнее о том, где хранить данные сайта, — в статье о локализации по 152-ФЗ.
Что важно при подключении любой капчи: токен проверяется на сервере сайта, а не только в браузере. Если проверку сделали лишь на странице, бот её обходит, а вы платите за сервис, который ничего не защищает.
| Форма | Базовый набор | Капча |
|---|---|---|
| Лендинг: имя и телефон | Скрытое поле, время заполнения, проверка телефона на сервере | Невидимая — только если спам прошёл базовый набор |
| Корпоративный сайт: несколько форм, обратная связь | Базовый набор на всех формах, ограничение частоты, фильтр ссылок в тексте | Невидимая на форме с текстовым полем |
| Форма с файлами: резюме, чертежи, ТЗ | Базовый набор, проверка типа и размера файла на сервере, лимит отправок | Невидимая или видимая: загрузка файлов — частая цель |
| Регистрация, вход, восстановление пароля | Ограничение частоты, блокировка перебора | Да: здесь бьют по аккаунтам, а не по заявкам |
Как не отпугнуть настоящего клиента?
Защиту настраивают так, чтобы человек её не замечал: сначала невидимые методы, капча — только невидимая и только на формах, где без неё не справиться. Каждое правило проверяют на реальных людях с телефона, а ошибки объясняют понятным текстом, а не молча отбрасывают заявку.
Что чаще всего отсекает живых людей:
- Видимая капча на форме из двух полей. Человек хотел оставить телефон, а получил задачу с картинками. На телефоне это особенно раздражает.
- Слишком строгая проверка телефона. Отбрасывает номера с пробелами, скобками, восьмёркой вместо +7 или городские номера. Правильнее приводить номер к одному виду, а не ругаться на формат.
- Молчаливое отбрасывание. Сервер решил, что это бот, и ничего не сказал. Человек видит «Спасибо», а заявка не дошла. Если заявка не прошла проверку, правильнее показать ошибку и запасной способ связи — телефон или мессенджер.
- Блокировка по стране или VPN. Ваш клиент может быть в командировке или сидеть через корпоративный VPN.
- Фильтр по словам. Слово «кредит» в спаме встречается часто, но и в заявке на кухню в кредит тоже.
Простое правило: подозрительные заявки не удалять, а складывать в отдельную папку или статус. Раз в неделю кто-то просматривает её за пять минут. Так видно, если фильтр начал задевать людей. Про то, почему формы теряют заявки по другим причинам, — в статье почему сайт не приносит заявки.
Что делать, если спам уже идёт в CRM?
Сначала остановить поток на стороне сайта, потом разобрать то, что уже попало. Пометьте мусор отдельным статусом, найдите общий признак — время, источник, содержимое полей — и по нему поставьте фильтр в форме. Удаляйте пачкой только после проверки, что среди мусора нет настоящих клиентов.
- Посмотрите на 20–30 спам-заявок. Обычно у них общие черты: ссылки в комментарии, латиница в имени, одна и та же почта, отправка ночью пачками, пустая метка источника.
- Найдите, откуда они приходят. Одна форма или все? Через сайт или напрямую в интеграцию? Если форма шлёт данные в CRM через открытый адрес приёма, бот может бить прямо в него, минуя страницу. Тогда защита на странице не поможет — закрывать надо сам адрес.
- Включите базовый набор защиты из раздела выше и через неделю сравните поток.
- Почистите CRM. Мусорные сделки — в отдельный статус «Спам», чтобы не портить отчёты по воронке. Если спамеры успели создать дубли реальных контактов, их объединяют вручную или правилами CRM.
- Проверьте цели в Метрике. Если цель считает нажатие кнопки, а не успешную отправку, ботовые заявки попадают в статистику. Цель надёжнее привязать к ответу сервера «заявка принята».
- Проверьте почту. Если форма отправляла письма на чужие адреса, домен мог попасть в списки спамеров. Проверьте настройки SPF и DKIM и доставляемость писем с сайта.
Если спама много, сайт стал медленнее, а в коде появились незнакомые файлы — это уже похоже на взлом, а не на спам через форму. Что делать в этом случае, разобрано в статье сайт взломали: что делать.
Какие ошибки делают чаще всего?
Главные ошибки — защита только в браузере, капча вместо базовых проверок, молчаливое отбрасывание заявок и отсутствие проверки после изменений. Каждая из них либо пропускает ботов, либо теряет клиентов, а часто — и то и другое одновременно.
- Проверки только на странице. Бот отправляет данные напрямую на сервер и не видит ваших скриптов.
- Плагин «от спама» на устаревшем сайте. Плагин сам по себе может оказаться дырой, если его давно не обновляли.
- Ключи капчи в открытом коде. Секретный ключ должен храниться только на сервере. Если он попал в код страницы, его используют на чужих сайтах за ваш счёт.
- Одна защита на всё. Форма входа и форма заявки защищаются по-разному: для входа важнее блокировка перебора, для заявки — удобство.
- Нет тестовой заявки после изменений. Включили защиту — отправьте заявку с телефона и компьютера и проверьте, что она дошла во все каналы.
Когда сложная защита не нужна. Если спама одна-две заявки в неделю, менеджер удаляет их за минуту, а сайт не отправляет писем на чужие адреса — капча и сервисы не нужны, хватит скрытого поля и проверки времени. Защита стоит денег и иногда отпугивает людей; ставить её «на всякий случай» на тихий сайт смысла нет.
Сколько стоит защитить формы?
Базовая защита — скрытое поле, время, частота, проверки на сервере — небольшая задача программиста. Если сайт у нас на поддержке, её делают в рамках абонентки от 7 900 ₽ в месяц или разово по задаче. Капча в Yandex Cloud оплачивается отдельно, по тарифам Яндекса; первые 10 000 запросов в месяц в расчёт не входят.
При разработке нового сайта защиту форм обсуждаем на брифе и закладываем в смету: лендинг — от 24 000 ₽, корпоративный сайт — от 56 000 ₽. Если спам идёт через интеграцию с CRM, а не через саму форму, это задача уровня тарифа «Интеграции и автоматизация» — от 32 000 ₽; часто хватает доработки уже существующей связки, и тогда это работа в рамках поддержки сайта. Как устроена передача заявок из формы в CRM, мы разбирали в статье о заявках в amoCRM и Битрикс24.
Чек-лист защиты форм
Пройдите этот список по каждой форме сайта: заявка, обратная связь, подписка, форма с файлами, вход и регистрация. Обычно на проверку уходит полчаса, а исправления — пара часов работы программиста.
- В форме есть скрытое поле-ловушка, и оно не заполняется автозаполнением браузера.
- Сервер проверяет время между загрузкой страницы и отправкой.
- Есть ограничение частоты отправок с одного адреса.
- Формат телефона и почты, длина полей и ссылки проверяются на сервере, а не только в браузере.
- Форма не отправляет письма на адрес, который ввёл посетитель, без подтверждения.
- Если стоит капча — токен проверяется на сервере, секретный ключ не виден в коде страницы.
- Если капча иностранная — понятно, куда уходят данные посетителей, и это описано в политике обработки персональных данных.
- При ошибке человек видит понятное сообщение и запасной способ связи.
- Подозрительные заявки не удаляются, а складываются в отдельную папку или статус.
- Цель в Метрике считает успешную отправку, а не нажатие кнопки.
- Для формы с файлами сервер проверяет тип и размер файла.
- После любой правки отправлена тестовая заявка с телефона и компьютера, и она дошла во все каналы.
Если по половине пунктов ответ «не знаю», это нормально: владелец сайта и не должен разбираться в устройстве форм. Достаточно передать список тому, кто сопровождает сайт, и попросить ответить по каждому пункту письменно.
Короткие ответы на частые вопросы
Какая защита формы от спама самая простая?
Скрытое поле и проверка времени заполнения. Их не видит посетитель, они ставятся за час-два работы программиста и отсекают большую часть простых ботов. Если после этого мусор продолжает приходить, добавляют проверку на сервере и невидимую капчу.
Сколько стоит Яндекс SmartCaptcha?
Платят за успешные проверки токена на сервере. По странице тарифов Yandex Cloud на октябрь 2026 года в примере расчёта первые 10 000 таких запросов в месяц вычитаются, дальше — 109,8 руб. за 1 000 запросов с НДС. Небольшой сайт с формой заявки часто в эти 10 000 укладывается; актуальные цены — на странице тарифов.
Чем невидимая капча отличается от обычной?
Обычная показывает кнопку «Я не робот» всем, невидимая запускает проверку при отправке формы и показывает задание только тем, кого сервис счёл подозрительным. Для формы заявки невидимая удобнее: большинство людей её не замечает.
Можно ли поставить на сайт иностранную капчу?
Технически да, но она передаёт данные посетителя на зарубежные серверы. Если по форме собирают персональные данные, это добавляет вопросов по 152-ФЗ: уведомление о трансграничной передаче и описание в политике обработки. Российский сервис снимает вопрос о трансграничной передаче, но уведомить посетителя об обработке данных капчей всё равно нужно.
Что делать, если спам уже попал в CRM?
Не удалять всё подряд: сначала пометить мусорные заявки отдельным статусом, найти общий признак и поставить фильтр на стороне сайта. Удалять пачкой стоит только после того, как проверили, что среди мусора нет настоящих клиентов.
Услуги и кейсы по теме: поддержка сайта от 7 900 ₽/мес · цены и сроки
Если через форму уже идёт мусор, пришлите адрес сайта и пару примеров спам-заявок — скажем, какой защиты хватит и сколько это стоит.
Рассчитать проект →Оценку срока и цены по брифу делаем бесплатно, обычно отвечаем в течение часа в рабочее время. Типовой договор — посмотреть до оплаты.
