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