Защита от спама Yandex SmartCaptcha
[FONT=Arial, sans-serif][SIZE=12pt]Модуль представляет альтернативу для стандартной CAPTCHA на основе 1С-Битрикс.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Работает со стандартными компонентами регистрации, формами добавления элементов инфоблоков и веб-формами. Также возможна интеграция в формы из сторонних модулей или в самописные (см. инструкцию для разработчиков в разделе "Установка").[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Начало работы.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Необходимо получить ключи – ключ клиента и ключ сервера для работы модуля. Получить их можно по ссылке - [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]https://cloud.yandex.ru/ru/services/smartcaptcha/[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt].[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Ключи устанавливаются в настройках модуля в соответствующих полях.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Настройки модуля.[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Текст ошибки при отрицательном ответе при прохождении проверки" - напишите свой текст ошибки.[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Язык капчи" - на каком языке отобразить текст в форме проверки на робота[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Невидимый режим" - если флаг установлен, в форме не будет отображено задание для проверки капчи[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Тестовый режим" - для проверки работы модуля. Система всегда будет "подозревать", что вы робот и будет показывать форму с заданием, даже если вы выбрали "Невидимый режим"[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Автоматически подставлять капчу в формы" - скрипты проверки будет автоматически подгружены в формы, выбранные в настройках ниже[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Веб-формы для защиты на стороне сервера" - выберите веб-формы, которые необходимо защитить Yandex SmartCaptcha от спама[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Автоматически подставлять капчу в регистрацию" - скрипты проверки на работа будут автоматически подгружаться в форму регистрации[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Защита регистрации" - даже при автоматической регистрации пользователя (например, из внешнего API) будут проверяться токены Yandex SmartCaptcha[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Автоматически подставлять капчу в iblock.element.add.form" - скрипты проверки на работа в шаблон этого компонента будут подгружаться автоматически[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Инфоблоки для защиты на стороне сервера" - выберите инфоблоки, которые необходимо защитить от спама. При попытке добавить элемент в выбранный инфоблок (из API или из форм на сайте) будут проверяться токены Yandex SmartCaptcha[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]"Скрыть иконку политики со страниц" - даже в невидимом режиме при подгрузке скриптов Yandex SmartCaptcha внизу страницы будет отображаться небольшой блок "Политика обработки данных". Если вам необходимо скрыть этот блок - отметьте галочку в этой настройке.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Защита веб-форм.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Для автоматической защиты веб-формы должны быть соблюдены требования:[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]1)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]форма реализована через компонент “form.result.new”. Работоспособность со сторонними компонентами не гарантируется.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]2)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]В настройках компонента выбрано:[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]чекбокс "Автоматически подставлять капчу в формы"[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]в параметре "Веб-формы для защиты на стороне сервера" выбран ID формы[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Защита регистрации[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Для автоматической защиты регистрации должны быть соблюдены требования:[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]1)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]регистрация на сайте реализована через компонент "main.register" или "system.auth.registration". Работоспособность со сторонними компонентами не гарантируется.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]2)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]в настройках компонента выбрать:[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]чекбокс "Автоматически подставлять капчу в регистрацию"[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]чекбокс "Защита регистрации"[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Важно! При активном чекбоксе "Защита регистрации" будет проверяться любая попытка регистрации на сайте. Необходимо проверить все варианты регистрации на сайте и убедиться, что во все компоненты внедрена капча.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Защита инфоблоков[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Для автоматической защиты инфоблоков от спама должны быть соблюдены требования:[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]1)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Добавление элементов в публичной части сайта реализовано через компонент “iblock.element.add.form”. Работоспособность со сторонними компонентами не гарантируется[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]2)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]В настройках модуля выбрано:[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]чекбокс “Автоматически подставлять капчу в iblock.element.add.form”[/SIZE][/FONT]
[FONT=Symbol][SIZE=12pt]·[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]В списке “Инфоблоки для защиты на стороне сервера” выбран инфоблок, который необходимо защитить от спама.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Важно! Если в списке “Инфоблоки для защиты на стороне сервера” выбран инфоблок, но при добавлении элемента не будет передаваться токен смарт-капчи, то элемент добавлен не будет. Это относится только к публичной части сайта, ограничения на административный раздел не распространяются.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Установка в свои компоненты (для разработчиков).[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Обычный [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]submit[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] (без ajax режима).[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]1)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Установить контейнер с классом smart-captcha в шаблон формы в нужное место[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]2)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]При обработке результатов сабмита добавить [/SIZE][/FONT]
[CODE]\Bitrix\Main\Loader::includeModule('itescort.yacaptcha'); \Itescort\Yacaptcha\Captcha::checkSmartTokenFromUser($token);[/CODE][FONT=Arial, sans-serif][SIZE=12pt]где $token - токен Yandex SmartCaptcha из формы для проверки на стороне Яндекса[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]3)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Метод возвращает Boolean переменную true или false в зависимости от результата проверки на сервере Яндекса.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Подключение в формы с ajax-режимом.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt][U]Видимый режим Yandex SmartCaptcha:[/U][/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]1)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Установить контейнер с классом smart-captcha в шаблон формы в нужное место[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]2)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]При отправке ajax-запроса добавить в данные "smart-token" из формы. Пример[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]:[/SIZE][/FONT]
[CODE]let smartTokenValue = document.querySelector('input[name="smart-token"]').value;BX.ajax({ url: '/ajax.php', data: { action: 'save', smart_token: smartTokenValue,},});[/CODE][FONT=Arial, sans-serif][SIZE=12pt]3)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]При[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]обработке[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]результатов[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]сабмита[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]добавить[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[CODE]\Bitrix\Main\Loader::includeModule('itescort.yacaptcha');\Itescort\Yacaptcha\Captcha::checkSmartTokenFromUser($token);[/CODE][FONT=Arial, sans-serif][SIZE=12pt]где $token - токен Yandex SmartCaptcha из формы для проверки на стороне Яндекса[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]4)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Метод возвращает Boolean переменную true или false в зависимости от результата проверки на сервере Яндекса.[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt][U]Невидимый режим:[/U][/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]1)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Установить контейнер с классом smart-captcha в шаблон формы в нужное место[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]2)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Добавить на форму дата атрибут data-ajax=true[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]Пример[/SIZE][/FONT]
[CODE]
[FONT=Arial, sans-serif][SIZE=12pt]Важно! Для корректной проверки такой формы в ней обязательно должен быть элемент [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]type[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]=”[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]submit[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]” ([/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]button[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt] [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]или [/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]input[/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]). [/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]3)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]При отправке ajax-запроса добавить в данные "smart-token" из формы (пример кода выше).[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]4)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]При обработке результатов сабмита добавить [/SIZE][/FONT]
[CODE]\Bitrix\Main\Loader::includeModule('itescort.yacaptcha');\Itescort\Yacaptcha\Captcha::checkSmartTokenFromUser($token);[/CODE][FONT=Arial, sans-serif][SIZE=12pt]где $token - токен Yandex SmartCaptcha из формы для проверки на стороне Яндекса[/SIZE][/FONT]
[FONT=Arial, sans-serif][SIZE=12pt]5)[FONT=Times New Roman][SIZE=7pt] [/SIZE][/FONT][/SIZE][/FONT][FONT=Arial, sans-serif][SIZE=12pt]Метод возвращает Boolean переменную true или false в зависимости от результата проверки на сервере Яндекса.[/SIZE][/FONT]
