Утром в почте снова десятки заявок "buy cheap" с формы, которую вчера уже "защитили" картинкой – типичная боль владельца сайта на 1С-Битрикс: Управление сайтом (это не CRM-формы портала Bitrix24). Типичная ошибка – оставить только картинку без серверной проверки и ждать, что спам сам исчезнет. Ниже – рабочий маршрут: включить штатную CAPTCHA, понять когда её мало, подключить Яндекс SmartCaptcha с верными ключами и пройти чек-лист, чтобы спам ушёл, а заявка с телефона не сломалась.
Капча на CMS Битрикс – цепочка: GD/FreeType → профиль в Настройках продукта → опции модулей и компонента формы → при спаме после картинки – SmartCaptcha или reCAPTCHA. Клиентский ключ (ysc1_) идёт в виджет, серверный (ysc2_) только на бэкенд. В ограниченном режиме Yandex Cloud все проверки могут отвечать "ok" – защита фактически выключена. Форму с нуля не собираем: если ОС ещё нет, сначала гайд по форме, здесь только защита.
Речь про публичный сайт или магазин на коробочной CMS: обратная связь, регистрация, восстановление пароля, иногда оформление заказа. Если формы ещё нет – смотрите как настроить форму обратной связи на Битрикс; здесь фокус только на капче.
Маршрут: штатный путь Битрикс за 15 минут → выбор "картинка / SmartCaptcha / Google" → тест без авторизации и чек-лист результата.
Определите, когда капча реально нужна на CMS
Включайте защиту, если боты уже пишут в заявки, создают левые учётки или долбят восстановление пароля. Не ставьте капчу "на всякий случай" на каждую кнопку: на авторизованных сценариях она чаще мешает людям.
- Отметьте источник спама за неделю: например, ОС, регистрация, заказ, комментарии.
- Проверьте, видит ли гость (без логина) картинку или виджет на этой форме.
- Отправьте тест с пустым/неверным кодом – должна быть ошибка, не письмо менеджеру.
- Если картинка уже есть, а спам идёт – готовьтесь к SmartCaptcha, а не к "ещё кривее шрифт".
- Зафиксируйте страницы для теста: десктоп, мобилка, попап/AJAX, если есть.
- На практике сверьте, что отказ пишется в лог/на экран, а не только "кажется, что защита есть".
Делайте: сначала закрыть самую шумную форму. Не делайте: искать инструкцию SmartCaptcha для Bitrix24 CRM – это другой продукт.
Сравните штатную 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 – способ подключить сервис, а не "магическая непробиваемость". Статус кабинета Яндекса проверяете вы.
Включите штатную капчу в настройках и на формах
- Откройте Настройки → Производительность → PHP и проверьте GD и FreeType.
- Зайдите в Настройки → Настройки продукта → CAPTCHA: символы, прозрачность около 40–50%, угол примерно −30…30, шрифт bitrix_captcha.ttf при наличии.
- В Главном модуле включите CAPTCHA для регистрации и/или восстановления пароля.
- В параметрах компонента ОС (часто main.feedback) включите CAPTCHA для неавторизованных; в веб-формах – опцию капчи в настройках формы.
- При необходимости включите показ после N неудачных паролей в группах пользователей (шаблон авторизации должен уметь это).
- Сбросьте кэш и откройте форму гостем в инкогнито.
Схема: 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" – заявку принимаете, иначе отказ.
- В Yandex Cloud создайте капчу, укажите домены в allowed-site, дождитесь ACTIVE или TRIAL_ACTIVE – иначе ограниченный режим.
- Скопируйте ysc1_ (клиент) и ysc2_ (сервер). Серверный ключ не кладите в HTML, JS или публичный репозиторий.
- Поставьте один модуль Marketplace с заменой штатной CAPTCHA либо вручную: captcha.js, блок smart-captcha и POST на
https://smartcaptcha.cloud.yandex.ru/validate. - Вставьте ключи, включите модуль, при необходимости задайте маски исключений для служебных URL.
- Проверьте: пустой/неверный токен = отказ; валидный = заявка; токен ~5 минут и одноразовый.
- На 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.
Пройдите чек-лист: спам ушёл, форма жива
- Гость видит картинку или виджет на целевой форме.
- Пустая/неверная капча даёт отказ, лид не создаётся.
- Верная проверка с десктопа и телефона шлёт одну заявку без дублей.
- В HTML нет серверного ключа ysc2_ / secret.
- Домен совпадает с allowed-site (если выбран Яндекс).
- За сутки–несколько дней спам падает; логин и заказ для людей не "отвалились".
- Письма уходят стабильно – при сбоях доставки см. настройку почты на Битрикс.
Делайте финальный прогон в инкогнито и с телефона. Не считайте победой только "виджет появился" без отказа на пустом токене. Если спам всё ещё просачивается – добавьте honeypot (скрытое поле-ловушку) как второй слой, не вместо капчи.
Что сделать дальше
- Проверьте GD/FreeType и включите штатную CAPTCHA на самой шумной форме.
- Если спам остаётся – создайте SmartCaptcha, вставьте ключи через один модуль, протестируйте AJAX.
- Пройдите чек-лист на десктопе и мобиле.
- Зафиксируйте, какие формы защищены, а какие сознательно без капчи.
Если нужно встроить защиту в нестандартный шаблон или разобрать конфликт модулей – напишите в контакты, разберём точечно на вашей 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 как страховка, а не вместо проверки.