Исходная ситуация
На одном хостинге работали 24 лендинга с 91 формой: на страницах, во всплывающих окнах и квизах. Шаблоны и PHP-обработчики различались, часть форм появлялась после действий посетителя.
Я добавлял защиту от автоматического спама без CAPTCHA. Нужно было сохранить привычную отправку обращения для посетителя и охватить все варианты форм.
Как встроил защиту
- Составлена карта всех 91 точек заявки, включая динамические формы, попапы и квизы.
- На стороне браузера добавлены скрытое поле-ловушка и подписанный временный токен.
- PHP-обработчики проверяют подпись и срок токена, время заполнения, повторы, частоту и корректность данных.
- Подозрительным запросам возвращается нейтральный ответ без раскрытия критериев фильтрации.
- Темы писем уточнены для различения сайтов и расположения форм; после тестов исходные получатели восстановлены.
Почему здесь была нужна работа с процессом
Нельзя было ограничиться добавлением одного скрипта на главную страницу. Формы использовали разные обработчики и появлялись в разных состояниях интерфейса. Поэтому потребовались карта точек обращения, адаптация защиты и отдельный тест каждой формы.
Ключевые решения о допустимости запроса перенесены на сервер. Клиентский код помогает собрать признаки, но данные из браузера нельзя считать достаточным доказательством корректности обращения.
Как проверяли результат
Каждая из 91 формы получила контрольную отправку. В сохранённых материалах проекта зафиксированы HTTP200 и статус защиты accepted для всех 91 запросов. Проверены страницы, всплывающие формы и квизы.
- Проверен охват: 24 сайта и 91 форма.
- Подтверждено принятие контрольных отправок серверными обработчиками.
- Для посетителя не добавлен отдельный шаг CAPTCHA.
Что этот результат не доказывает
Принятие запроса обработчиком не равно подтверждению доставки каждого письма в конкретную папку почтового ящика. Такая доставка требует отдельной проверки.
Долгосрочное снижение фактического спама оценивается по журналам после внедрения. Влияние на конверсию, число заявок и продажи в материалах проекта не измерялось.
Подтверждён охват форм и принятие тестовых запросов. Полное отсутствие спама или рост продаж не заявляются.
Когда опыт этого проекта полезен
Когда у бизнеса несколько сайтов и много разных форм, а единую защиту нужно встроить в существующие обработчики. Начинать стоит с карты всех точек обращения и проверки, куда реально попадает результат отправки.