Исходная ситуация

На одном хостинге работали 24 лендинга с 91 формой: на страницах, во всплывающих окнах и квизах. Шаблоны и PHP-обработчики различались, часть форм появлялась после действий посетителя.

Я добавлял защиту от автоматического спама без CAPTCHA. Нужно было сохранить привычную отправку обращения для посетителя и охватить все варианты форм.

Как встроил защиту

  • Составлена карта всех 91 точек заявки, включая динамические формы, попапы и квизы.
  • На стороне браузера добавлены скрытое поле-ловушка и подписанный временный токен.
  • PHP-обработчики проверяют подпись и срок токена, время заполнения, повторы, частоту и корректность данных.
  • Подозрительным запросам возвращается нейтральный ответ без раскрытия критериев фильтрации.
  • Темы писем уточнены для различения сайтов и расположения форм; после тестов исходные получатели восстановлены.

Почему здесь была нужна работа с процессом

Нельзя было ограничиться добавлением одного скрипта на главную страницу. Формы использовали разные обработчики и появлялись в разных состояниях интерфейса. Поэтому потребовались карта точек обращения, адаптация защиты и отдельный тест каждой формы.

Ключевые решения о допустимости запроса перенесены на сервер. Клиентский код помогает собрать признаки, но данные из браузера нельзя считать достаточным доказательством корректности обращения.

Как проверяли результат

Каждая из 91 формы получила контрольную отправку. В сохранённых материалах проекта зафиксированы HTTP200 и статус защиты accepted для всех 91 запросов. Проверены страницы, всплывающие формы и квизы.

  • Проверен охват: 24 сайта и 91 форма.
  • Подтверждено принятие контрольных отправок серверными обработчиками.
  • Для посетителя не добавлен отдельный шаг CAPTCHA.

Что этот результат не доказывает

Принятие запроса обработчиком не равно подтверждению доставки каждого письма в конкретную папку почтового ящика. Такая доставка требует отдельной проверки.

Долгосрочное снижение фактического спама оценивается по журналам после внедрения. Влияние на конверсию, число заявок и продажи в материалах проекта не измерялось.

Подтверждён охват форм и принятие тестовых запросов. Полное отсутствие спама или рост продаж не заявляются.

Когда опыт этого проекта полезен

Когда у бизнеса несколько сайтов и много разных форм, а единую защиту нужно встроить в существующие обработчики. Начинать стоит с карты всех точек обращения и проверки, куда реально попадает результат отправки.