У контактной формы одна задача — дать реальному человеку легко связаться с бизнесом, — и защиту от спама очень легко настроить так, чтобы она тихо вредила этой задаче, пытаясь её защитить. Обычная ошибка — не слишком слабая защита, а защита достаточно жёсткая, чтобы настоящий посетитель бросил форму, не закончив её, а это худший исход, чем спам, который она должна была остановить.
Почему одного фильтра недостаточно
Спам-отправки варьируются от грубых автоматических ботов, заполняющих каждое найденное поле формы, до более осознанных отправок от человека, вручную нацелившегося на форму бизнеса. Одна защита обычно ловит только один конец этого диапазона: простое поле-ловушка ловит грубую автоматизацию, но ничего не делает против упорного человека, а challenge в стиле пазла, останавливающий обоих, также отсекает заметную долю реальных посетителей, особенно на мобильных, где решать пазл с картинками неудобнее, чем на компьютере. Наслаивание нескольких лёгких проверок вместо опоры на одну тяжёлую ловит больше реального спама, требуя меньше от каждого отдельного настоящего посетителя.
Что работает так, что посетители этого не замечают
Скрытое поле, невидимое для человека, но которое базовые боты всё равно заполняют, потому что не отображают страницу так, как браузер, — любая отправка с заполненным этим полем тихо отбрасывается, без какого-либо трения для настоящего посетителя, который даже не знает о существовании поля. Замер промежутка между загрузкой формы и её отправкой ловит ботов, заполняющих и отправляющих форму менее чем за секунду — быстрее, чем реально успел бы человек, читающий поля, — не требуя от настоящего посетителя делать что-то иначе. Проверка содержимого отправки на короткий список паттернов, типичных для спама — поток ссылок, символы вне того, что должно быть в поле, — ловит заметную долю вообще без видимой проверки.
Где видимая проверка оправдана
Часть упорного, но малозатратного спама проходит пассивные проверки, и именно тут уместен лёгкий видимый шаг — простое «выберите каждое изображение с машиной» или похожее, показываемое только после того, как другие сигналы намекают на неладное, а не при каждом визите. Показ этого каждому посетителю по умолчанию наказывает всех за проблему, к которой большинство из них не имеет отношения; показ выборочно, только когда отправка уже выглядит подозрительно, держит это в стороне от обращений, которые бизнесу действительно нужны.
Как это выглядит на практике, на примере нашего собственного сайта
Наша собственная контактная форма использует именно этот многослойный подход — скрытое поле-ловушка, проверку времени отправки и сопоставление паттернов в содержимом, вообще без видимого пазла для посетителя, если только несколько сигналов не расходятся, — потому что форма, которую действительно быстро использовать, конвертирует лучше формы, которая просто хорошо защищена, и эти две цели не обязаны конфликтовать, если защита многослойна, а не сброшена целиком на посетителя.
Метрика, которая реально важна
Показатель, за которым стоит следить, — не «сколько спама заблокировано», а соотношение реальных, полезных обращений, которые прошли, к числу людей, начавших форму и бросивших её. Форма, блокирующая 100% спама, но раздражающая заметную долю настоящих посетителей, обменяла одну проблему на другую, более дорогую.
Это одна из практических деталей за отношением к сайту как к работающей части бизнеса, а не статической странице. Наша веб-команда встраивает этот многослойный подход в каждую форму, которую создаёт, а не добавляет его задним числом.




