🔐reCAPTCHA v3

Узнайте как защитить ваш сайт с помощью reCAPTCHA v3.

Если ваш магазин столкнулся с большим количеством подозрительных регистрацией и/или оформлений заказов, вы можете защитить некоторые разделы сайта с помощью бесплатного сервиса reCAPTCHA v3 от Google.

Перед тем, как подключить reCAPTCHA v3 в магазине, вам нужно создать сайт в консоли администрирования reCAPTCHA (для этого понадобится аккаунт Google).

На данный момент защита с помощью reCAPTCHA v3 не поддерживается в мобильных приложениях. Если вы включите защиту, выбранные защищённые действия перестанут работать в приложениях (например, пользователи не смогут зарегистрироваться или оформить заказ).

Создание ключей reCAPTCHA v3

Перейдите в раздел добавления нового сайта в консоли администрирования reCAPTCHA. Если вы увидите окно с предложением использовать reCAPTCHA Enterprise, нажмите на кнопку «Switch to create a classic key».

Далее заполните форму вашего сайта:

  1. В поле «Ярлык» укажите название или домен вашего сайта;

  2. В поле «Тип reCAPTCHA» выберите опцию «reCAPTCHA v3»;

  3. В поле «Домены» укажите домен вашего сайта (например, example.org);

  4. В поле «Владельцы» вы можете указать дополнительные адреса электронной почты, на которые будут приходить уведомления от Google; это необязательно;

  5. Примите условия использования reCAPTCHA и нажмите на кнопку «Отправить».

После создания вы будете перенаправлены на страницу с ключами вашего сайта. Скопируйте эти ключи, они вам понадобятся позже. Будьте особенно аккуратны с секретным ключом – если к нему получат доступ злоумышленники, они смогут обходить защиту вашего сайта.

Отключение проверки источника

Нажмите на кнопку «Открыть настройки», которая расположена под списком ключей. В настройках сайта снимите галочку с поля «Проверить источник решений reCAPTCHA» и сохраните настройки.

Ваш ключ reCAPTCHA v3 может использоваться на наших поддоменах *.zenky.io (например, checkout.zenky.io или auth.zenky.io). Включенная настройка не позволит нам выполнять проверку на этих поддоменах, из-за чего покупатели могут столкнуться с ошибками во время регистрации или оформления заказов.

Мы выполняем проверку источника самостоятельно, поэтому ваш ключ не будет доступен для использования на сторонних сайтах.

Подключение reCAPTCHA v3

После создания и настройки сайта reCAPTCHA, перейдите в панель управления магазином и откройте раздел «Магазин» -> «Сторонние сервисы». В секции «reCAPTCHA» включите защиту, вставьте публичный ключ (ключ сайта) и секретный ключ reCAPTCHA в соответствующие поля, укажите домен вашего сайта, а так же выберите какие действия вы хотите защитить.

Поле «Минимальная оценка угрозы для прохождения проверки» предназначено для более точной настройки пропуска трафика. Чем ниже это значение (от 0.0 до 1.0), тем больше вероятность, что роботы смогут обойти защиту. Чем выше это значение, тем больше вероятность, что все запросы будут приходить только от людей (однако, у небольшого количества легитимных пользователей могут возникнуть проблемы с отправкой запросов).

Мы рекомендуем оставить это значение без изменений и повышать/понижать его в зависимости от типа атаки на ваш сайт.

Установка reCaptcha для приложения

После настройки reCaptcha в разделе «Магазин - Сторонние сервисы» нужно создать файл /recaptcha.html в корневой папке сайта. Данный файл нужен для защиты мобильного приложения.

Для создания этого файла нажмите зеленую кнопку «Сайт» в верхнем меню админки системы. В выпадающем меню выберите пункт «Страницы»

На открывшейся странице нажмите кнопку «Создать» и вставьте нижеприведенный HTML код.

Перед вами откроется форма создания файла с полями:

  • Путь к файлу

  • Тип файла

  • Содержимое файла

Введите путь файла:

/recaptcha.html

Укажите тип файла «HTML» и в поле «содержимое страницы» скопируйте этот HTML код, где поле XXXXXXXXXXXX заменить на ваш публичный ключ из настроек reCaptcha:

<html>
  <head>
    <title>reCAPTCHA</title>
    <script
      src="https://www.google.com/recaptcha/api.js?render="
      async
      defer
    ></script>
    <script id="recaptcha-script" async defer></script>
  </head>
  <body>
    <script>
      function executeCaptcha(siteKey, action) {
        if (typeof Captcha !== "undefined") {
          grecaptcha.ready(function () {
            grecaptcha
              .execute(siteKey, { action: action })
              .then(function (token) {
                Captcha.postMessage(token);
              })
              .catch(function (error) {
                // Post the error message back to the WebView
                Captcha.postMessage("error: " + error.message);
              });
          });
        }
      }
    </script>

    <script>
      function readyCaptcha(dataSiteKey, action) {
        try {
          // Assuming executeCaptcha is defined elsewhere in your code
          executeCaptcha(dataSiteKey, action);
        } catch (error) {
          Ready.postMessage(
            "An error occurred while loading reCAPTCHA:",
            error
          );
        }
      }
    </script>
  </body>
</html>

Сохраните страницу и проверьте работоспособность reCaptcha в вашем приложении.

reCaptcha в приложении

Пользователи мобильного приложения будут видеть дополнительное окно проверки в течение нескольких секунд. Требуется дождаться автоматического закрытия окна проверки. Что будет означать, что проверка прошла успешно. Если же окно не будет закрываться продолжительное время, то нужно перезапустить приложение и повторить попытку.

Last updated