Ознакомьтесь с обновлениями продуктов, которые мы анонсировали! Смотрите, что нового.

/

Подключение Google reCAPTCHA через модуль twim.recaptchafree

Установка модуля

Для реализации защиты форм с помощью Google reCAPTCHA используем модуль twim.recaptchafreetwim.recaptchafree из маркетплейса 1С-Битрикс.

  1. Установить модуль через админку Битрикса или из маркетплейса.

  2. Перейти в настройки модуля (Настройки > Настройки продукта > Модули > TWIM: ReCaptchaFree) и ввести публичный и секретный ключи, полученные от Google:

  3. Получить ключи можно на сайте: https://www.google.com/recaptcha/admin

Модуль поддерживает только v2 reCAPTCHA (галочка "Я не робот").

Автоматическое подключение капчи

Если используется стандартный компонент формы Битрикса (bitrix:main.feedback, bitrix:main.register, и др.), достаточно в параметрах компонента установить:

"USE_CAPTCHA" => "Y"

В этом случае модуль автоматически заменит стандартную капчу на Google reCAPTCHA.

Ручное подключение капчи в форму

Если нужно вручную внедрить капчу в кастомную форму:

  1. Получить публичный ключ из настроек модуля:

  1. Добавить в HTML-форму следующую строку:

<div class="g-recaptcha" data-sitekey="<?=htmlspecialchars($publicKey, ENT_QUOTES)?>"></div>

  1. Не забыть подключить скрипт Google reCAPTCHA на странице:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Подключение скрипта https://www.google.com/recaptcha/api.jshttps://www.google.com/recaptcha/api.js должно происходит в header-e компонента.

В рамках выполнения задачи на проекте mixi.kzmixi.kzmixi.kz данный код использовался по данным путям:

/bitrix/templates/xiaomi/parts-templates/pop-ups/one-click.php

/bitrix/templates/.default/components/bitrix/system.auth.form/popupAuth/template.php

/bitrix/templates/.default/components/bitrix/system.auth.authorize/flat/template.php

Серверная проверка капчи (бэкенд)

Обязательный шаг — проверка ответа капчи на сервере до отправки данных формы.

Пример проверки:

В рамках выполнения проекта данный код использовался по данным путям:

/bitrix/templates/.default/components/bitrix/system.auth.form/popupAuth/template.php

/bitrix/templates/.default/components/bitrix/system.auth.authorize/flat/template.php

/bitrix/templates/.default/assets/es6/edit.jsedit.js

/local/components/api/reviews.form/templates/.default/script.jsscript.js

Где должна происходить проверка?

Проверку нужно выполнять на серверной стороне, до сохранения или обработки формы (например, до отправки письма или записи в БД). Фронтенд может лишь визуально отобразить капчу, но её валидность должен проверять только сервер.