Практически каждый коммерческий сайт на WordPress рано или поздно сталкивается с одной и той же проблемой. Пока сайт маленький — всё спокойно. Но как только появляются трафик, реклама или SEO-продвижение, форма обратной связи на Contact Form 7 начинает притягивать спам.
Сначала это выглядит безобидно: пара странных писем в день. Потом — десятки. Потом форма превращается в точку постоянной атаки. Почта забивается мусором, реальные заявки теряются, менеджеры перестают доверять форме, а владелец сайта начинает искать «волшебный антиспам-плагин».
Мы прошли этот путь на десятках проектов. И именно поэтому пошли не по пути «поставить ещё одну капчу», а разработали собственное решение — CF7 Universal Validator.
Почему мы вообще решили разрабатывать свой плагин
Сразу честно: мы не планировали писать плагин.
Мы планировали нормально защищать формы клиентов.
На практике выяснилось, что:
- стандартных возможностей Contact Form 7 недостаточно;
- готовые антиспам-плагины либо слишком примитивны, либо ломают UX;
- капчи снижают конверсию, но не останавливают целенаправленный спам;
- у каждого проекта свои особенности, а универсального решения «из коробки» нет.
В итоге мы начали шаг за шагом собирать систему защиты, ориентируясь не на теорию, а на реальные атаки. Так и появился CF7 Universal Validator — сначала как внутренний инструмент, а потом как полноценный плагин.
Важная мысль, которую мы всегда озвучиваем клиентам
100% защиты от спама не существует.
И любой, кто обещает обратное, либо не работал с реальными атаками, либо лукавит.
Но существует другое — управляемый спам, когда:
- мусор не мешает работе;
- реальные заявки не теряются;
- защита адаптируется под ситуацию.
Именно под это мы и проектировали наш плагин.
Honeypot — сразу внутри нашего решения
Первое, что мы реализовали, — honeypot. Но принципиальный момент:
мы не используем сторонние honeypot-плагины.
Honeypot встроен прямо в CF7 Universal Validator.
Достаточно добавить в форму тег [hidden cf7uv_hp], и он начинает работать.
Это поле:
- полностью скрыто от пользователя;
- визуально и логически присутствует для ботов;
- отсекает значительную часть автоматического мусора ещё до серверной обработки.
Это не «вся защита», но это правильный первый уровень фильтрации.
Почему мы начали с валидации имени
Когда смотришь логи отправок, быстро становится ясно: спам выдают детали.
Одна из таких деталей — имя.
Для русскоязычных сайтов имя почти всегда пишется кириллицей. Поэтому мы реализовали проверку: в поле имени допускаются только русские буквы и пробелы, а цифры запрещены всегда.
При этом мы сразу заложили гибкость. Если проект международный или специфика другая, конкретные формы можно исключить из кириллической проверки. Защита не должна мешать бизнесу — она должна ему помогать.
Телефон — ключевой элемент защиты, который многие недооценивают
Со временем мы поняли важную вещь:
спамеры могут менять email, тексты и даже IP-адреса, но номера телефонов повторяются.
Поэтому в CF7 Universal Validator телефон:
- всегда очищается;
- приводится к единому формату +7XXXXXXXXXX;
- проверяется уже в нормализованном виде.
Неважно, как номер ввели — 8 (961)…, +7 961… или 7961….
Для системы это всегда один и тот же телефон.
Дальше включается бизнес-логика:
- проблемные номера добавляются в чёрный список;
- временные или внутренние номера — в исключения;
- формат и длина проверяются на сервере, а не только на фронтенде.
Именно этот подход в реальных проектах позволял резко снижать поток спама, не затрагивая живых пользователей.
Email: контроль повторов, а не формальная проверка
На практике спам почти никогда не идёт с тысяч уникальных почт. Чаще используется ограниченный пул email-адресов, которые крутятся по кругу.
Поэтому мы реализовали полноценный чёрный список email:
- с блокировкой на фронтенде;
- с обязательной серверной проверкой;
- без зависимости от JavaScript.
Это даёт возможность быстро реагировать на атаки, не меняя форму и не ухудшая конверсию.
Поле «Сообщение» — самый честный индикатор спама
Если внимательно посмотреть на тексты спама, становится очевидно:
большинство из них невозможно отправить без ссылок, доменов или рекламных слов.
Поэтому мы реализовали:
- минимальную и максимальную длину сообщения;
- запрет ссылок и доменов;
- списки рекламных и запрещённых слов.
Эти проверки работают и на фронтенде, и на сервере. Даже если кто-то обходит браузерную часть, сервер всё равно отклоняет заявку.
Безопасность, XSS и контроль данных
Форма — это точка входа данных на сайт. Поэтому в CF7 Universal Validator есть защита от XSS и подозрительного кода. Можно указать допустимые HTML-теги и быть уверенным, что форма не станет источником уязвимостей.
Для коммерческих проектов это критично, особенно если сайт активно развивается.
IP-ограничения и автоматическая блокировка
Когда атака идёт сериями, мы подключаем ограничения по IP:
- лимит отправок за час;
- временные и постоянные блокировки;
- автоматическая блокировка при превышении порогов;
- исключения для доверенных IP.
Это не основной фильтр, а дополнительный уровень, который хорошо работает в связке с остальными проверками.
Почему логирование — обязательная часть системы
Мы всегда говорим:
если вы не видите, что происходит с формой, вы не управляете защитой.
CF7 Universal Validator сохраняет логи всех отправок:
- что прошло;
- что было отклонено;
- по какой причине.
Именно логи позволяют усиливать защиту не наугад, а осознанно.
Наш подход в работе с клиентами
CF7 Universal Validator — это не «плагин ради галочки».
Это инструмент, который мы сами разработали, используем и постоянно дорабатываем.
На всех сайтах, которые мы обслуживаем:
- формы находятся под контролем;
- защита адаптируется под тип спама;
- правила корректируются по логам;
- клиенту не нужно разбираться в технических деталях.
Если форма на сайте — это источник клиентов, а не просто элемент дизайна, защита должна быть такой же серьёзной, как SEO или реклама.
Вместо обещаний — рабочее решение
Мы не обещаем «абсолютную защиту».
Мы предлагаем системный подход, который:
- снижает объём спама;
- сохраняет конверсию;
- растёт вместе с проектом;
- и реально работает в коммерческих условиях.
Если вы хотите, чтобы Contact Form 7 перестал быть слабым местом сайта,
и форма начала работать как полноценный бизнес-инструмент — обращайтесь.
Мы не просто настраиваем защиту.
Мы сопровождаем сайты и помогаем держать заявки под контролем.