Борьба с ботами в контактах
Если вы используете формы для сбора подписичков, формы заказа, или просто распространяете ссылку на заказ, то рано или поздно столкнетесь с ботами.
Это абсолютно нормальная ситуация. С ней сталкиваются практически все сервисы, которые работают с формами: CRM-системы, конструкторы сайтов, сервисы email-рассылок, интернет-магазины и SaaS-платформы.
В этой статье расскажем, почему полностью избавиться от ботов невозможно, какие методы защиты используются в нашей системе и почему мы не включаем CAPTCHA для каждого посетителя.
Почему боты вообще заполняют формы?
Причин много.
Чаще всего это:
- засорение базы контактов;
- попытки проверить существование email-адресов;
- автоматический спам;
- поиск уязвимостей;
- просто массовый обход сайтов роботами без какой-либо конкретной цели.
Большинство подобных действий выполняется автоматически специальными программами.
При этом злоумышленнику не обязательно быть заинтересованным именно в вашем проекте. Очень часто боты просто обходят миллионы сайтов подряд и пытаются заполнить любую найденную форму.
Можно ли полностью защититься от ботов?
К сожалению — нет.
На сегодняшний день не существует технологии, которая могла бы на 100% отличить человека от современного бота.
Почему?
Потому что боты постоянно развиваются.
Еще несколько лет назад достаточно было простой CAPTCHA или скрытого поля.
Сегодня существуют боты, которые умеют:
- выполнять JavaScript;
- имитировать поведение браузера;
- использовать настоящие браузеры вместо простых скриптов;
- менять IP-адрес практически после каждого запроса;
- использовать прокси и VPN по всему миру;
- обходить многие популярные способы защиты.
Это постоянная гонка.
Как только появляется новый способ защиты, через некоторое время появляются боты, умеющие его обходить.
Поэтому задача любой современной системы — не полностью исключить ботов (это невозможно), а максимально уменьшить их количество, не мешая реальным пользователям.
Почему нельзя просто всегда показывать CAPTCHA?
Это самый частый вопрос.
На первый взгляд кажется, что решение очевидное:
Показываем CAPTCHA каждому посетителю — и проблема решена.
На практике всё иначе.
CAPTCHA сильно ухудшает конверсию.
Каждое дополнительное действие снижает вероятность того, что человек отправит форму.
То есть вместе с ботами вы теряете и настоящие заявки.
Для большинства проектов такие потери оказываются значительно выше, чем небольшой процент бот-заполнений.
Именно поэтому мы показываем CAPTCHA только тогда, когда действительно возникает подозрение на автоматические действия.
Почему нельзя просто определить, что это бот?
К сожалению, это намного сложнее, чем кажется.
Например, посетитель может указать:
Имя:
Пупсикили
Kingили
AdminЭто бот?
Не обязательно.
Многие реальные пользователи используют:
- ники;
- сокращения;
- вымышленные имена;
- случайные символы.
То же касается email.
Например:
abc123@gmail.comили
qwerty777@mail.ruЭто может быть как настоящий пользователь, так и бот.
По одному только имени или адресу электронной почты определить это невозможно.
Поэтому современные антибот-системы анализируют сразу множество различных факторов, а не одно поле формы.
Почему нельзя просто заблокировать IP-адрес?
Еще одно распространенное заблуждение.
Раньше многие боты действительно работали с нескольких IP-адресов.
Сегодня ситуация совсем другая.
Современные боты используют:
- огромные сети прокси;
- VPN;
- облачные серверы;
- зараженные устройства по всему миру.
Из-за этого один и тот же бот может отправлять каждую новую заявку уже с другого IP.
Поэтому блокировка отдельных IP помогает лишь частично и не является полноценной защитой.
Какая защита используется в АВО?
1. Скрытые поля (Honeypot)
Важно
Для работы этого механизма необходимо использовать новый модуль форм!
В url /shop/form
В новом модуле форм присутствуют специальные скрытые поля.
Обычный пользователь их никогда не увидит и, соответственно, не сможет заполнить.
Однако многие автоматические боты пытаются заполнить абсолютно все поля формы.
Если такое скрытое поле оказывается заполненным, система с высокой вероятностью определяет, что форму отправляет робот.
Это один из самых эффективных способов борьбы с простыми и средними ботами.
По нашим наблюдениям после внедрения этой технологии количество автоматических заполнений уменьшилось примерно на 90%.
При этом для реального пользователя ничего не меняется:
- никаких дополнительных действий;
- никаких CAPTCHA;
- никаких неудобств.
2. Анализ поведения после отправки формы
Даже если бот успешно отправил форму, это не означает, что заявка автоматически считается нормальной.
После отправки система анализирует большое количество признаков.
Мы не раскрываем полный алгоритм проверки, поскольку это значительно облегчило бы задачу злоумышленникам.
Однако можно привести несколько примеров факторов, которые анализируются.
Например:
- слишком большое количество отправок с одного IP;
- необычно высокая активность за короткое время;
- резкий всплеск новых подписчиков;
- большое количество регистраций с разных IP, которые затем не подтверждают email;
- другие технические признаки автоматизированной активности.
Все эти данные оцениваются комплексно.
Если система обнаруживает признаки массовой атаки, мы включаем CAPTCHA.
Это делается автоматически только тогда, когда действительно есть основания считать, что идет активная атака ботов.
В результате:
- база контактов защищается от массового засорения;
- атака быстро прекращается;
- после окончания подозрительной активности дополнительная проверка перестает мешать обычным пользователям.
Таким образом CAPTCHA используется только тогда, когда она действительно необходима.
Но надо понимать, что такая защита не сработает при малом кол-ве заполнений форм. Т.е. если у вас 5 новых подписчиков в сутки, то определить подозрительную активность невозможно.
Итоги
Важно понимать, что полностью избавиться от ботов невозможно ни в одной современной системе.
Наша задача — найти баланс между отсутствием ботов и конверсией.
Именно поэтому мы не показываем CAPTCHA каждому посетителю.
Вместо этого используется многоуровневая защита:
- скрытые антибот-поля (honeypot);
- анализ множества технических факторов после отправки формы;
- автоматическое выявление подозрительной активности;
- временное включение CAPTCHA только при необходимости.
Такой подход позволяет сохранить высокий уровень конверсии для реальных клиентов и одновременно значительно снизить количество автоматических регистраций и спама.