CAPTCHA — это проверка «человек или бот», которая защищает веб-формы 1С-Битрикс от автоматических рассылок спама. Включается она на уровне конкретной формы и не требует стороннего кода.
Что такое CAPTCHA и когда её включать
CAPTCHA — это графическая проверка, которая выводит на форме искажённую последовательность символов. Посетитель вводит их в отдельное поле, а бот, работающий без распознавания изображений, сделать этого не может.
Встроенная CAPTCHA в 1С-Битрикс полезна прежде всего для публичных форм, доступных без авторизации:
- формы обратной связи и «Задать вопрос»;
- заявки, расчёт стоимости, запись на услугу;
- формы регистрации и подписки.
Для форм, доступных только авторизованным сотрудникам, CAPTCHA обычно избыточна и только мешает — там её включать не стоит.
Как включить CAPTCHA на веб-форме
CAPTCHA задаётся для каждой формы отдельно. Порядок действий:
- Перейдите в Контент → Веб-формы → Настройка форм.
- Откройте нужную форму на редактирование (или создайте новую).
- На вкладке Настройки найдите параметр «Показывать CAPTCHA при заполнении формы» и установите флажок.
- Сохраните форму кнопкой Сохранить.
После сохранения на публичной части формы появится картинка с кодом и поле для его ввода. Если посетитель введёт код неверно, форма не отправится и покажет сообщение об ошибке.
Вывод CAPTCHA в шаблоне компонента
Флажок в настройках формы отвечает за логику проверки, но само поле должно быть выведено в шаблоне. В стандартном компоненте bitrix:form.result.new за это отвечает блок с выводом картинки и полем ввода.
Если вы правили шаблон вручную, убедитесь, что в нём присутствуют:
- картинка CAPTCHA — тег
<img>со ссылкой на/bitrix/tools/captcha.phpс параметромcaptcha_sid; - скрытое поле
captcha_sidс идентификатором кода; - текстовое поле
captcha_wordдля ввода символов.
Если этих элементов нет, CAPTCHA включена, но на странице не видна — форма при этом будет считать проверку не пройденной.
Настройка вида и сложности картинки
Параметры генерации картинки задаются в модуле «Проактивная защита». Путь: Настройки → Проактивная защита → CAPTCHA.
| Параметр | Назначение |
|---|---|
| Набор символов | Какие символы используются в коде (цифры, буквы, регистр). |
| Длина кода | Количество символов на картинке. |
| Шрифт и искажения | Уровень зашумления и деформации для усложнения распознавания. |
| Цвета | Цвет фона, символов и помех. |
Не делайте картинку чрезмерно сложной: сильное зашумление снижает конверсию, так как реальные посетители тоже не могут разобрать код.
CAPTCHA не только на веб-формах
Помимо модуля веб-форм, встроенная CAPTCHA применяется и в других местах системы. Проверьте связанные настройки, чтобы защита была последовательной:
- Регистрация пользователей — в настройках модуля «Главный модуль» можно включить CAPTCHA при регистрации нового пользователя;
- Восстановление пароля и авторизация — CAPTCHA появляется автоматически после нескольких неудачных попыток входа;
- Форум и комментарии — в соответствующих модулях есть отдельные флажки показа CAPTCHA для анонимных посетителей.
Все они используют один и тот же механизм генерации картинки из «Проактивной защиты».
Частые ошибки и их решение
Наиболее распространённые проблемы с CAPTCHA на веб-формах:
- Картинка не отображается (пустой квадрат). Чаще всего не работает библиотека GD в PHP. Проверьте её наличие в Настройки → Инструменты → Проверка системы. Также причиной бывает лишний вывод в
init.phpдо генерации изображения. - Код всегда неверный, хотя введён правильно. Обычно теряется параметр
captcha_sidпри кэшировании страницы. Отключите кэширование блока с формой или исключитеcaptcha_sidиз кэша. - CAPTCHA включена, но поля нет. В кастомном шаблоне не выведены элементы вывода картинки и поля ввода — добавьте их вручную.
- Спам проходит несмотря на CAPTCHA. Убедитесь, что флажок стоит именно у нужной формы, а не только в шаблоне; проверьте, не отключён ли модуль «Проактивная защита».
- Картинка кэшируется браузером. Символы не меняются между отправками — добавьте к URL картинки уникальный параметр или проверьте заголовки кэширования.
Итог
Встроенная CAPTCHA 1С-Битрикс — быстрый способ снизить поток спама через публичные веб-формы без стороннего кода. Достаточно включить флажок в настройках формы и убедиться, что поле выводится в шаблоне.
Держите баланс: слишком сложная картинка отпугивает живых посетителей. Для форм за авторизацией CAPTCHA не нужна, а для приёма большого потока заявок стоит дополнительно продумать серверную фильтрацию и защиту от повторных отправок.