Как настроить капчу на 1С-Битрикс: формы, Яндекс SmartCaptcha и защита от спама

Утром в почте снова десятки заявок "buy cheap" с формы, которую вчера уже "защитили" картинкой – типичная боль владельца сайта на 1С-Битрикс: Управление сайтом (это не CRM-формы портала Bitrix24). Типичная ошибка – оставить только картинку без серверной проверки и ждать, что спам сам исчезнет. Ниже – рабочий маршрут: включить штатную CAPTCHA, понять когда её мало, подключить Яндекс SmartCaptcha с верными ключами и пройти чек-лист, чтобы спам ушёл, а заявка с телефона не сломалась.

Капча на CMS Битрикс – цепочка: GD/FreeType → профиль в Настройках продукта → опции модулей и компонента формы → при спаме после картинки – SmartCaptcha или reCAPTCHA. Клиентский ключ (ysc1_) идёт в виджет, серверный (ysc2_) только на бэкенд. В ограниченном режиме Yandex Cloud все проверки могут отвечать "ok" – защита фактически выключена. Форму с нуля не собираем: если ОС ещё нет, сначала гайд по форме, здесь только защита.

Речь про публичный сайт или магазин на коробочной CMS: обратная связь, регистрация, восстановление пароля, иногда оформление заказа. Если формы ещё нет – смотрите как настроить форму обратной связи на Битрикс; здесь фокус только на капче.

Маршрут: штатный путь Битрикс за 15 минут → выбор "картинка / SmartCaptcha / Google" → тест без авторизации и чек-лист результата.

Определите, когда капча реально нужна на CMS

Чеклист: когда включать капчу на формах CMS Битрикс

Включайте защиту, если боты уже пишут в заявки, создают левые учётки или долбят восстановление пароля. Не ставьте капчу "на всякий случай" на каждую кнопку: на авторизованных сценариях она чаще мешает людям.

  1. Отметьте источник спама за неделю: например, ОС, регистрация, заказ, комментарии.
  2. Проверьте, видит ли гость (без логина) картинку или виджет на этой форме.
  3. Отправьте тест с пустым/неверным кодом – должна быть ошибка, не письмо менеджеру.
  4. Если картинка уже есть, а спам идёт – готовьтесь к SmartCaptcha, а не к "ещё кривее шрифт".
  5. Зафиксируйте страницы для теста: десктоп, мобилка, попап/AJAX, если есть.
  6. На практике сверьте, что отказ пишется в лог/на экран, а не только "кажется, что защита есть".

Делайте: сначала закрыть самую шумную форму. Не делайте: искать инструкцию SmartCaptcha для Bitrix24 CRM – это другой продукт.

Сравните штатную CAPTCHA, SmartCaptcha и reCAPTCHA

Сравнение штатной CAPTCHA, SmartCaptcha и reCAPTCHA для Битрикс

Штатная капча – картинка с символами: PHP рисует её через GD и FreeType (простыми словами – "рисовалки" в PHP), пользователь вводит код. Яндекс SmartCaptcha – сервис в Yandex Cloud: виджет даёт токен, сервер сайта спрашивает Яндекс "человек ок?". Google reCAPTCHA делает похожее через Google.

Критерий Штатная CAPTCHA Яндекс SmartCaptcha Google reCAPTCHA
Где настраивается Админка Битрикс + компонент Yandex Cloud + модуль/код Google Console + модуль/код
Сила против ботов 2026 Слабая: картинку часто пробивают Выше: умный/невидимый режим Выше: зависит от версии и региона
Ключи Не нужны ysc1_ (клиент) / ysc2_ (сервер) site key / secret key
Кому брать Старт, низкий спам РФ-трафик, спам при картинке Международный трафик, уже живёт Google
Итоговый вердикт: Начните со штатной, если защиты ещё нет. Если картинка включена, а спам остаётся – для русскоязычного сайта обычно логичнее Яндекс SmartCaptcha. Google – запасной путь, когда команда уже умеет с ним работать.

Рекомендация: модуль Marketplace – способ подключить сервис, а не "магическая непробиваемость". Статус кабинета Яндекса проверяете вы.

Включите штатную капчу в настройках и на формах

Схема включения штатной капчи Битрикс: настройки и формы
  1. Откройте Настройки → Производительность → PHP и проверьте GD и FreeType.
  2. Зайдите в Настройки → Настройки продукта → CAPTCHA: символы, прозрачность около 40–50%, угол примерно −30…30, шрифт bitrix_captcha.ttf при наличии.
  3. В Главном модуле включите CAPTCHA для регистрации и/или восстановления пароля.
  4. В параметрах компонента ОС (часто main.feedback) включите CAPTCHA для неавторизованных; в веб-формах – опцию капчи в настройках формы.
  5. При необходимости включите показ после N неудачных паролей в группах пользователей (шаблон авторизации должен уметь это).
  6. Сбросьте кэш и откройте форму гостем в инкогнито.
Схема: GD + FreeType → профиль CAPTCHA → галки модулей → параметр компонента → тест гостем → при спаме SmartCaptcha

Делайте точечно на шумных формах. Не делайте картинку нечитаемой: люди ошибаются чаще ботов.

Самописная форма – короткий API: CaptchaGetCode, поле captcha_sid, картинка /bitrix/tools/captcha.php?captcha_sid=..., при submit – CaptchaCheckCode. Это не гайд по полям и письмам, только вставка защиты.

$captcha_sid = $APPLICATION->CaptchaGetCode();
// HTML: captcha_sid + img captcha.php + поле captcha_word
// submit: $APPLICATION->CaptchaCheckCode($word, $sid)

Подключите Яндекс SmartCaptcha: ключи и проверка

На сайте виджет выдаёт токен. Сервер отправляет токен на validate Яндекса вместе с секретным ключом и IP. Ответ "ok" – заявку принимаете, иначе отказ.

  1. В Yandex Cloud создайте капчу, укажите домены в allowed-site, дождитесь ACTIVE или TRIAL_ACTIVE – иначе ограниченный режим.
  2. Скопируйте ysc1_ (клиент) и ysc2_ (сервер). Серверный ключ не кладите в HTML, JS или публичный репозиторий.
  3. Поставьте один модуль Marketplace с заменой штатной CAPTCHA либо вручную: captcha.js, блок smart-captcha и POST на https://smartcaptcha.cloud.yandex.ru/validate.
  4. Вставьте ключи, включите модуль, при необходимости задайте маски исключений для служебных URL.
  5. Проверьте: пустой/неверный токен = отказ; валидный = заявка; токен ~5 минут и одноразовый.
  6. На AJAX/popup переинициализируйте виджет после подгрузки формы – иначе "пропала" или submit молчит.

По документации Яндекса: первые 10 тыс. успешных validate в месяц не тарифицируются; дальше – оплата за тысячи успешных запросов. Модуль и сервис оплачиваются отдельно.

Делайте: один активный модуль капчи. Не делайте: одновременно SmartCaptcha и чужой reCAPTCHA – частый конфликт на готовых шаблонах.

Разберите типовые сбои капчи на формах

Белый квадрат вместо картинки – нет GD/FreeType или битый шрифт. Сначала чините PHP.

В компоненте есть, в кастомной форме нет – забыли CaptchaGetCode / CaptchaCheckCode или captcha_sid. Без серверной проверки картинка – декорация.

SmartCaptcha "ограничена" или пропускает всех – аккаунт Cloud не ACTIVE/TRIAL_ACTIVE. В ограниченном режиме validate часто отвечает ok.

Модалка/AJAX – виджет не перерисовался: на практике часто ломается submit после подгрузки формы в попапе. Нужна поддержка AJAX у модуля или явный вызов переинициализации.

Перепутаны ключи (ysc1_ в серверный слот или ysc2_ в HTML) – сверьте префиксы по документации ключей SmartCaptcha.

Рекомендация: короткий лог "форма → тип защиты → дата теста". Не ищите баг в Битрикс, пока не проверили PHP, ключи и режим Cloud.

Пройдите чек-лист: спам ушёл, форма жива

  1. Гость видит картинку или виджет на целевой форме.
  2. Пустая/неверная капча даёт отказ, лид не создаётся.
  3. Верная проверка с десктопа и телефона шлёт одну заявку без дублей.
  4. В HTML нет серверного ключа ysc2_ / secret.
  5. Домен совпадает с allowed-site (если выбран Яндекс).
  6. За сутки–несколько дней спам падает; логин и заказ для людей не "отвалились".
  7. Письма уходят стабильно – при сбоях доставки см. настройку почты на Битрикс.

Делайте финальный прогон в инкогнито и с телефона. Не считайте победой только "виджет появился" без отказа на пустом токене. Если спам всё ещё просачивается – добавьте honeypot (скрытое поле-ловушку) как второй слой, не вместо капчи.

Что сделать дальше

  1. Проверьте GD/FreeType и включите штатную CAPTCHA на самой шумной форме.
  2. Если спам остаётся – создайте SmartCaptcha, вставьте ключи через один модуль, протестируйте AJAX.
  3. Пройдите чек-лист на десктопе и мобиле.
  4. Зафиксируйте, какие формы защищены, а какие сознательно без капчи.

Если нужно встроить защиту в нестандартный шаблон или разобрать конфликт модулей – напишите в контакты, разберём точечно на вашей CMS.

Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: документация CAPTCHA BitrixFramework, курс и user help 1С-Битрикс, Yandex SmartCaptcha quickstart, docs по ключам, validate, тарифам и ограниченному режиму, карточки модулей Marketplace и практика внедрений на CMS.

Частые вопросы

Как включить капчу на форме Битрикс?

Проверьте GD и FreeType, настройте профиль в Настройки продукта → CAPTCHA, включите опцию в компоненте формы для гостей. Откройте страницу без авторизации: картинка видна, пустой код отклоняется.

Чем штатная капча отличается от Яндекс SmartCaptcha?

Штатная – картинка внутри Битрикс. SmartCaptcha – сервис Яндекса с виджетом и проверкой токена на сервере. Если картинка есть, а спам идёт, обычно переходят на SmartCaptcha.

Почему капча не показывается на форме?

Часто нет GD/FreeType, опция выключена в компоненте, кастомный шаблон без captcha_sid/картинки; для SmartCaptcha – неверный домен, неактивный модуль или AJAX без переинициализации виджета.

Нужна ли капча на оформлении заказа?

Да, если боты создают мусорные заказы. Ставьте точечно на гостевой checkout и тестируйте живой сценарий. На шагах только для авторизованных капча часто лишняя.

Бесплатна ли SmartCaptcha и что такое ограниченный режим?

По документации Яндекса первые 10 тыс. успешных validate в месяц не тарифицируются. В ограниченном режиме (аккаунт не ACTIVE/TRIAL_ACTIVE) проверки могут всегда отвечать ok – защита не работает.

Можно ли защитить форму без капчи?

Частично: honeypot и серверная валидация полей снижают шум, но при массовом спаме этого мало. Разумная схема – капча плюс honeypot как страховка, а не вместо проверки.

Обсудить вашу задачу

Было полезно?

Поставьте лайк, если статья помогла разобраться.

Поделиться статьёй

Отправьте тому, кому это пригодится.

Telegram ↗ MAX ↗ ВКонтакте ↗ Одноклассники ↗
Все статьи ↗

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Структура шаблонов сайта в Битриксе и поиск header footer

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны