Генератор ловушки для формы
Выберите платформу — получите готовый код ловушки: скрытое поле, которое заполняют только боты, и проверку, что форму заполняли дольше нескольких секунд. Отметка времени подписывается секретом, поэтому её не подделать.
Содержание
Как работает ловушка
- Скрытое поле. Поле убрано за пределы экрана: человек его не видит и не заполняет, а простой бот заполняет все поля подряд. Если поле не пустое — это бот.
- Время заполнения. Человек тратит на форму хотя бы несколько секунд. Бот отправляет её сразу после загрузки или вообще без загрузки страницы.
- Подпись времени. Отметку времени подписывает сервер секретным ключом. Бот не может подставить «старое» время, чтобы обойти проверку.
Почему боту отвечаем «успехом»
Если показать боту ошибку, его автор поймёт, что форма защищена, и начнёт подбирать обход. Если ответить «Заявка отправлена», бот считает задачу выполненной, а заявка просто не сохраняется.
Чего ловушка не остановит
Ловушка отлично отсекает простые скрипты и обходится бесплатно. Но браузерные боты заполняют только видимые поля и умеют ждать, а бомберы подставляют настоящие номера. Против них нужны проверка браузера и лимиты на номер. Подробно о слоях защиты — в статье о спам-ботах.
Не мешает ли ловушка людям
Поле спрятано за край экрана, исключено из перехода по клавише Tab и скрыто от программ экранного доступа атрибутом aria-hidden. Автозаполнение браузера для него отключено. Поэтому люди, в том числе с программами чтения экрана, его не заполнят.
Частые вопросы
Что такое honeypot?
Ловушка для ботов: скрытое поле формы, которое человек не видит и оставляет пустым, а бот заполняет. По заполненному полю отправку отклоняют.
Почему не display:none?
Некоторые боты пропускают поля со стилем display:none. Поле за краем экрана выглядит для них обычным, а людям его всё равно не видно.
Какое имя дать полю?
Правдоподобное: company_site, website, fax. Боты охотнее заполняют поля, похожие на настоящие. Не называйте поле honeypot или trap.
Сколько секунд ставить?
Обычно 3–5 секунд. Для длинных форм можно больше. Слишком большое значение будет отсекать людей, которые заполняют форму автозаполнением.
Подходит ли для Тильды?
Нет: формы Тильды обрабатывает сам конструктор, и свой обработчик туда не поставить. Для Тильды используйте её встроенную защиту и режим защиты антибота.
Где хранить секрет?
В конфигурации сайта или переменной окружения на сервере, но не в коде страницы. В форму попадает только подпись, по ней секрет не восстановить.
Можно ли совместить с антиботом?
Да, и это лучший вариант: ловушка бесплатно отсекает простые скрипты, антибот — ботов в настоящих браузерах.