Справка

Yandex SmartCaptcha: как включить защиту форм и входа

Безоблачный Pyrus

Pyrus Datacenter поддерживает защиту публичных веб-форм и страницы входа с помощью Yandex SmartCaptcha. Чтобы её включить, нужно создать капчу в Yandex Cloud и выполнить команду pyrus-setup.

Подсказка: Yandex SmartCaptcha доступна в Pyrus Datacenter начиная с версии 1.27.

Где работает капча

Капча защищает от ботов:

  • публичные веб-формы Pyrus — те, которые заполняют без входа в систему. Капча снижает поток автоматических отправок и заявок;
  • страницу входа в Pyrus — капча защищает от автоматизированных попыток входа.

Капча невидимая: обычно пользователь её не замечает. Задание показывается только тем, кого Yandex SmartCaptcha сочтёт подозрительным.

На веб-формах проверка срабатывает не при каждой отправке, а при резком росте числа заявок. Например, если в одну форму за две минуты поступило больше 20 заявок. На странице входа капча по умолчанию включается после 200 попыток входа за час — этот порог можно изменить.

Что нужно со стороны сети:

  • у браузеров, в которых открываются формы и страница входа, должен быть доступ к smartcaptcha.cloud.yandex.ru — оттуда загружается скрипт капчи;
  • у сервера Pyrus должен быть исходящий HTTPS-доступ к https://smartcaptcha.cloud.yandex.ru/validate — по этому адресу сервер проверяет ответ капчи.

Как получить ключи в Yandex Cloud

Понадобится аккаунт Yandex Cloud с платёжным аккаунтом в статусе ACTIVE или TRIAL_ACTIVE.

  1. Войдите в консоль Yandex Cloud и выберите нужный каталог.
  2. Откройте сервис Yandex SmartCaptcha и нажмите Создать капчу.
  3. Заполните поля:
    • Имя — любое, например pyrus-forms;
    • Список сайтов — домен, на котором открывается ваш Pyrus (например, pyrus.company.ru). Если формы встроены в другие сайты, добавьте и их домены;
    • Внешний вид — оставьте без изменений;
    • Сложность — «Средняя», остальные параметры — по умолчанию.
  4. Нажмите Создать.
  5. Откройте созданную капчу и скопируйте два ключа:
    • Ключ клиента — публичный, используется на страницах форм и входа;
    • Ключ сервера — секретный, с его помощью сервер Pyrus проверяет ответ капчи. Не передавайте его третьим лицам.

Обратите внимание: обязательно укажите в поле Список сайтов домен вашего Pyrus Datacenter. Если домена нет в списке разрешённых, капча на страницах Pyrus работать не будет.

Подробнее: документация Yandex SmartCaptcha.

Как включить капчу

Выполните команду на сервере Pyrus из папки с docker-compose.yml. Если запускаете из другой папки, добавьте -f <путь к docker-compose.yml>.

docker compose run --rm pyrus-setup --configure-captcha --clientKey <ключ клиента> --serverKey <ключ сервера>

Команда включает капчу на веб-формах и на странице входа:

Что делает командаПараметр
Сохраняет ключ клиентаRECAPTCHA_YSMART_KEY
Сохраняет ключ сервера в зашифрованном видеRECAPTCHA_YSMART_SECRET
Включает капчу на веб-формахUSE_RECAPTCHA

Обратите внимание: чтобы заменить ключи, выполните команду ещё раз с новыми ключами.

Как изменить порог для страницы входа

По умолчанию капча на странице входа включается после 200 попыток входа за час. Если в организации много сотрудников и они входят в Pyrus одновременно, например в начале рабочего дня, увеличьте порог:

docker compose run --rm pyrus-setup --setup -id LOGIN_RECAPTCHA_LIMIT -v <число попыток в час>

Чтобы новое значение начало действовать, перезапустите веб-сервис Pyrus:

docker compose restart web-api

Чтобы вернуть порог по умолчанию, задайте значение 0.

Как проверить настройки

Посмотреть, включена ли капча на веб-формах:

docker compose run --rm pyrus-setup --setup -ls -id USE_RECAPTCHA

Посмотреть текущий порог для страницы входа:

docker compose run --rm pyrus-setup --setup -ls -id LOGIN_RECAPTCHA_LIMIT

Как выключить капчу

docker compose run --rm pyrus-setup --configure-captcha --disable

Команда выключает капчу и на веб-формах, и на странице входа. Ключи остаются в настройках: чтобы снова включить капчу, выполните команду из раздела Как включить капчу.

Была ли эта статья полезной?