Yandex SmartCaptcha в Pyrus Datacenter: как включить защиту форм
Pyrus Datacenter поддерживает защиту публичных веб-форм с помощью Yandex SmartCaptcha. Чтобы её включить, нужно создать капчу в Yandex Cloud и задать три параметра через pyrus-setup.
Какие формы защищает капча
Капча защищает публичные веб-формы Pyrus — те, которые заполняют без входа в систему. Она снижает поток автоматических отправок и заявок от ботов.
- Капча невидимая: обычно пользователь её не замечает. Задание показывается только тем, кого Yandex SmartCaptcha сочтёт подозрительным.
- Проверка срабатывает не при каждой отправке, а при резком росте числа заявок. Например, если в одну форму за две минуты поступило больше 20 заявок.
Что нужно со стороны сети:
- у браузеров, в которых открываются формы, должен быть доступ к
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 проверяет ответ капчи. Не передавайте его третьим лицам.
Подробнее: документация Yandex SmartCaptcha.
Как задать настройки через pyrus-setup
Капчу включают три параметра:
| Параметр | Ключ для pyrus-setup | Значение | За что отвечает |
|---|---|---|---|
USE_RECAPTCHA | SetupParams:P_1050007 | true | Включает капчу на публичных формах |
RECAPTCHA_YSMART_KEY | SetupParams:P_1050008 | Ключ клиента | Подключает виджет Yandex SmartCaptcha на странице формы |
RECAPTCHA_YSMART_SECRET | SetupParams:P_1050009 | Ключ сервера | Нужен серверу для проверки ответа капчи; хранится в зашифрованном виде |
Выполните команды на сервере Pyrus из папки с docker-compose.yml. Если запускаете из другой папки, добавьте -f <путь к docker-compose.yml>.
docker compose run --rm pyrus-setup set-config -n SetupParams:P_1050007 -v true docker compose run --rm pyrus-setup set-config -n SetupParams:P_1050008 -v <ключ клиента> docker compose run --rm pyrus-setup set-config -n SetupParams:P_1050009 -v <ключ сервера> -e
Обратите внимание: флаг -e в последней команде обязателен — с ним ключ сервера сохраняется зашифрованным.
Как выключить капчу
docker compose run --rm pyrus-setup set-config -n SetupParams:P_1050007 -v false