Разработка модуля защиты от спама 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка модуля защиты от спама 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка модуля защиты от спама 1С-Битрикс

Форма обратной связи начинает принимать 200–300 спам-заявок в сутки. Менеджеры перестают доверять данным из формы и начинают пропускать реальные заявки. Битрикс предлагает встроенную Google reCAPTCHA v2 через компонент form, но боты давно умеют её обходить с помощью сервисов решения капч. На высоконагруженных формах нужна многоуровневая защита.

Почему один метод не работает

Каждый способ защиты от спама имеет слабые места:

Метод Слабость
Google reCAPTCHA v2 Сервисы решения капч, $0.5–1/1000 решений
reCAPTCHA v3 / hCaptcha Ложные срабатывания на реальных пользователях, блокировка России
Honeypot-поле Умные боты игнорируют скрытые поля
Проверка времени заполнения Боты с имитацией человека обходят
IP-блокировка Боты используют ротируемые прокси

Эффективная защита — многоуровневая, где каждый метод перекрывает слабости других.

Архитектура модуля

Слой 1 — Honeypot + таймер. Скрытое поле с именем website (ботам понравится) и поле form_fill_time. Если website заполнено или form_fill_time < 3 секунды — заявка от бота с вероятностью 99%.

Слой 2 — Анализ поведения. JavaScript пишет события мыши и нажатий клавиш в скрытое поле. При отправке сервер проверяет: было ли реальное движение мыши, была ли разумная скорость набора. Боты с имитацией человека тратят на это ресурсы и реже их используют для массовых атак.

Слой 3 — Rate limiting по IP и fingerprint. Не более N заявок с одного IP за M минут. Fingerprint строится из User-Agent, Accept-Language, Accept-Encoding — не из IP. Правила хранятся в myvendor_spam_rate:

CREATE TABLE myvendor_spam_rate (
    fingerprint VARCHAR(64) NOT NULL,
    form_id     VARCHAR(100),
    hits        INT DEFAULT 1,
    first_hit   TIMESTAMP DEFAULT NOW(),
    last_hit    TIMESTAMP DEFAULT NOW(),
    blocked     BOOLEAN DEFAULT false,
    PRIMARY KEY (fingerprint, form_id)
);

Слой 4 — Репутационные базы. Проверка IP отправителя через AbuseIPDB API или Spamhaus. При score выше порога — блокировка или повышенная сложность проверки. Результаты кешируются в myvendor_spam_ip_cache с TTL 24 часа, чтобы не долбить внешний API на каждый запрос.

Слой 5 — ML-классификатор текста. Для форм с текстовыми полями (сообщение, комментарий) — анализ содержимого. Простой наивный байесовский классификатор, обученный на исторических спам/не-спам данных конкретного сайта. Хранится в myvendor_spam_model, переобучается агентом раз в неделю.

Детально: интеграция с формами Битрикс

Перехват форм через событие OnWebFormResult_Add (модуль form):

AddEventHandler('form', 'OnWebFormResult_Add', function(&$arFields, &$arValues) {
    $verdict = \MyVendor\Spam\Analyzer::analyze(
        ip: $_SERVER['REMOTE_ADDR'],
        fingerprint: \MyVendor\Spam\Fingerprint::get(),
        formId: $arFields['FORM_ID'],
        fields: $arValues,
        fillTime: (int)($_POST['form_fill_time'] ?? 0)
    );

    if ($verdict->isSpam()) {
        // Не блокируем — сохраняем с пометкой SPAM
        $arFields['COMMENTS'] .= "\n[SPAM: {$verdict->getReason()}]";
        $arFields['STATUS'] = 'N';
    }
});

Важно: спам-заявки не удаляются, а помечаются. Это позволяет периодически просматривать помеченные заявки и исправлять ложные срабатывания — данные для улучшения классификатора.

Защита корзины и регистрации

Спам-боты атакуют не только формы связи, но и форму регистрации (создание мусорных аккаунтов) и корзину (тестирование украденных карт через мелкие платежи). Модуль расширяется на эти точки: для регистрации — те же honeypot + rate limit, для корзины — детектирование паттернов (много мелких заказов с разных карт за короткое время).

Сроки разработки

Масштаб Состав Срок
Базовый Honeypot + таймер + rate limiting 1–2 недели
Средний + репутационные базы + поведенческий анализ 3–4 недели
Расширенный + ML-классификатор + защита корзины + аналитика 6–8 недель

Прежде чем заказывать сложное решение, оцените масштаб проблемы: иногда достаточно honeypot + rate limit, и это решит 95% спама за 1 неделю.