Анти Бот для 1C Битрикс: как антибот для WordPress получил тёзку на Битриксе
В первой статье про спам на WordPress я уже упоминал, что работаю не только с WordPress, но и с 1С-Битрикс – и вопросы по защите от ботов прилетали по обеим CMS. Во второй статье про обновления WP-плагина эта тема тоже проскакивала фоном. Пришло время закрыть цикл и рассказать отдельно про Анти Бот для 1C Битрикс – он уже живет на Маркетплейсе, и у истории его появления есть забавное совпадение.
Совпадение, о котором грех не рассказать
Запрос на модуль для Битрикса пришел буквально за неделю до того, как WordPress-плагин выложили в публичный доступ. И что характерно – от тех же клиентов, чьи сайты я веду на постоянной поддержке. То есть две параллельные истории с ботами и спамом почти синхронно уперлись в одну и ту же точку: «нужно что-то, что реально работает, а не для галочки».
Поскольку логика – гео-блокировка, списки, JS-проверка вместо капчи – к тому моменту уже была обкатана на WordPress, собрать модуль для Битрикса получилось быстрее, чем начинать с нуля. Но легкой прогулкой это все равно не было: у Битрикса свои требования к структуре модуля и пакетов обновлений, свои нюансы подключения к Маркетплейсу, плюс адаптация под PostgreSQL – часть корпоративных инсталляций работает именно на нем. И отдельным квестом – модерация по безопасности, которая местами реально раздувает из мухи слона (что, впрочем, не всегда плохо – лишняя проверка защиты лишней не бывает).
Почему на Битриксе это назрело раньше, чем на WordPress
Пока у клиентов был доступ к Cloudflare, WordPress-сайты особо не страдали – прокси гасил основную массу мусорного трафика еще на подступах. С Битриксом получилось куда болезненнее: движок гораздо капризнее к самому факту проксирования. Начинают сбоить авторизации, сессии, оплата – то есть именно то, ради чего защиту вообще ставят. Получается, что решение, которое должно было все упростить, для части клиентов на Битриксе становилось источником новых обращений в поддержку.
А штатных инструментов для замены толком не было: .htaccess, fail2ban, iptables – и капча самого Битрикса, про которую даже в официальной документации сказано прямо: проблему спама и ботового трафика она не решает, это скорее косметика. Отсюда и запрос на нормальный Анти Спам для Битрикс, который назрел у этого клиента раньше, чем у владельцев блогов на WordPress.
Как клиент боролся с ботами до модуля
У одного из клиентов, для которого все в итоге и делалось, история началась задолго до модуля. Сначала – ручные баны диапазонов IP через .htaccess, по мере жалоб. Работало, пока список не разросся: конфиг Apache не резиновый, и перечитывать его на каждый чих не самое приятное занятие. Перешли на iptables – быстрее, но появились свои сложности: консоль, перезапуски служб, местами работа через vim (кто сталкивался – тот поймет). А венцом всего было то, что периодически к серверу подключался штатный админ клиента и одним махом сбрасывал весь список блокировок – то ли по незнанию, то ли решив, что он мешает. И все начиналось заново.
Что в итоге получилось
Не буду детально расписывать реализацию – не хочу раскрывать внутреннюю кухню, тем более что задача статьи не в этом. Коротко, Анти Бот для 1C Битрикс закрывает тот же набор задач, что и версия для WordPress, с поправкой на архитектуру Битрикса:
– блокировка трафика по странам, ASN и собственным черным/белым спискам IP;
– вместо капчи – своя JS-проверка (слайд-пазл), которая не так раздражает живых людей, как классическая капча;
– мультисайтовость из коробки – на Битриксе один модуль часто обслуживает сразу несколько сайтов в одной установке;
– работа и на MySQL, и на PostgreSQL;
– поддержка любых редакций БУС и Битрикс24, начиная с PHP 8.0.
Отдельно следил, чтобы модуль не превратился в очередную защиту, которая сама становится проблемой: без агрессивного fail-open поведения, когда при сбое внешних сервисов защита просто отключается и пропускает все подряд.
Как дела сейчас
Модуль уже доступен публично на Маркетплейсе, есть несколько десятков скачиваний и уже реальные покупки. Отзывов пока нет, но и жалоб тоже – правда, вижу это в основном по своим клиентам, потому что сам Маркетплейс не показывает список сайтов с установленным модулем, и полноценный опрос пользователей провести не получится.
Если у вас Битрикс и хочется протестировать – буду рад обратной связи. Ищется на Маркетплейсе по названию «Анти Бот – защита сайта (антиспам) от нежелательного трафика, спама, ботов».
Куда дальше
Как и с WordPress, в планах – своя система оценки пользователя: поведенческие сигналы, куки, история запросов по сайту. Один рабочий пример – отсекать трафик, который на каждый запрос меняет User-Agent, но при этом остальные параметры (IP, ASN, паттерн запросов) остаются неизменными. Живой человек так себя не ведет, а вот скрипт, перебирающий список UA «для маскировки», – вполне.
Параллельно тестирую модуль на сайтах с заметной долей зарубежного трафика, где грубая гео-отсечка попросту не работает: нельзя взять и поставить капчу на все страны кроме России – под раздачу попадут реальные покупатели и партнеры. Тут нужна точечная работа: в первую очередь IP и ASN, дополнительно User-Agent, а дальше – все больше в сторону поведенческого анализа.
Из более близких обновлений – локальное хранение не только гео-базы (как уже сделано), но и базы ASN, чтобы меньше зависеть от внешних запросов и быстрее принимать решения.
Если у вас есть похожий опыт борьбы с ботами и спамом на Битриксе – или вопросы про Анти Спам для Битрикс и чем он отличается от штатной капчи и связки fail2ban + iptables – пишите в комментариях, разберем конкретные случаи.