Создать капчу
SmartCaptcha позволяет создавать капчи нескольких уровней сложности для разных входящих запросов. Уровень сложности запроса определяется по базовым параметрам входящего трафика.
При создании капчи вы можете:
- Подключить капчу к нескольким сайтам.
- Настроить внешний вид капчи: фон, состояния и ошибки, стиль кнопки Я не робот.
- Выбрать тип задания и сложность прохождения капчи.
- Показывать разные варианты капчи в зависимости от параметров входящего запроса. Например, выбрать разную капчу для пользователей из разных регионов.
Примечание
Чтобы сделать вашу защиту более эффективной, мы используем информацию об HTTP-запросах для развития моделей машинного обучения (ML). Вы можете отключить использование этой информации в консоли управления
-
В консоли управления
выберите каталог. -
Выберите сервис Yandex SmartCaptcha.
-
Нажмите Создать капчу.

-
Укажите Имя создаваемой капчи:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Выберите Отключить проверку домена.
-
Введите Список хостов в формате IP-адресов или доменных имен. Указывайте адрес без протокола и без
/в конце, например,example.com.Капча будет работать и во всех поддоменах указанных доменных имен.
-
Настройте Внешний вид кнопки Я не робот и окна с заданием:
Стандартный— внешний вид по умолчанию.Серый.Темная тема.Синий.
В разделе Настройка внешнего вида вы можете задать свои параметры окна задания и других элементов: через форму или через описание стилей в формате
JSON.Все изменения будут отображаться в окне предпросмотра.

-
Настройте Варианты заданий. Вы можете указать только капчу по умолчанию или добавить дополнительные варианты, если по разным входящим запросам нужно показывать разную капчу.
-
Для варианта По умолчанию укажите:
-
Основное задание — тип основного задания, которое предлагается решить пользователю.
-
Дополнительное задание — тип дополнительного задания, которое предлагается решить пользователю.
-
Сложность — сложность задания, которое увидит пользователь:
-
Легкая— простое задание. -
Средняя— задание среднего уровня сложности. -
Высокая— сложное задание. -
Максимальная— сложное задание с дополнительным вопросом. От пользователя требуется решение дополнительного задания, вне зависимости от результатов выполнения основного задания.Пример задания можно посмотреть в окне предпросмотра.
Примечание
Функциональность вариантов заданий и правил показа находится на стадии Preview.
-
-
Чтобы по разным запросам показывать разную капчу:
-
Нажмите кнопку Добавить вариант и задайте настройки аналогично капче по умолчанию.
Чтобы удалить вариант, нажмите
. Если вариант используется в правиле показа, удалить его нельзя -
Добавьте правила для входящего трафика, которые будут определять, какой вариант капчи показывать:
-
Нажмите кнопку Добавить правило.
-
Введите имя и описание правила.
-
Выберите вариант капчи.
-
Укажите приоритет правила от
1до999999.Правила проверяются в порядке приоритета от меньшего к большему:
1,2и так далее. Если трафик соответствует нескольким правилам, к нему применится первое сработавшее правило. -
Укажите одно или несколько условий для входящего трафика:
IP— IP-адрес, диапазон адресов или регион IP-адресов;HTTP header— строка в заголовке HTTP;URI— путь входящего запроса к сайту;Host— домен, на который пришел запрос.
-
Нажмите кнопку Добавить.
Чтобы удалить правило, нажмите
. Правило по умолчанию удалить нельзя.
-
-
Таким же способом добавьте другие варианты капчи и правила для входящего трафика.
-
-
(Опционально) Включите или отключите использование информации об HTTP-запросах для улучшения моделей машинного обучения в разделе Обучение ML-моделей.
-
Нажмите Создать.

Капча отобразится на странице сервиса в разделе Список капч.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Посмотрите описание команды CLI для создания капчи:
yc smartcaptcha captcha create --help -
Создайте капчу:
yc smartcaptcha captcha create \ --name <имя_капчи> \ --turn-off-hostname-check \ --allowed-site <первый_хост>,<второй_хост> \ --style-json '<внешний_вид_капчи>' \ --pre-check-type <тип_основного_задания> \ --challenge-type <тип_дополнительного_задания> \ --complexity <сложность_задания> \ --security-rules-file <путь_к_файлу_с_вариантами>.yaml \ --override-variants-file <путь_к_файлу_с_правилами>.yamlГде:
-
--name— имя капчи. -
--turn-off-hostname-check— отключение проверки домена. Необязательный параметр. -
--allowed-site— список хостов в формате IP-адресов или доменных имен. Указывайте адрес без протокола и без/в конце, например,example.com. Капча будет работать и во всех поддоменах указанных доменных имен. Необязательный параметр. -
--style-json— внешний вид окна задания и других элементов в форматеJSON. Подробнее смотрите вJSON, сгенерированном с помощью консоли управления . Необязательный параметр. -
--pre-check-type— тип основного задания по умолчанию, которое предлагается решить пользователю. Возможные значения:CHECKBOX— чекбокс.SLIDER— слайдер.
-
--challenge-type— тип дополнительного задания по умолчанию, которое предлагается решить пользователю. Возможные значения:IMAGE_TEXT— распознавание текста.SILHOUETTES— силуэт.KALEIDOSCOPE— калейдоскоп.
-
--complexity— сложность задания по умолчанию. Возможные значения:EASY— простое задание.MEDIUM— задание среднего уровня сложности.HARD— сложное задание.FORCE_HARD— сложное задание с дополнительным вопросом. От пользователя требуется решение дополнительного задания, вне зависимости от результатов выполнения основного задания.
Примечание
Функциональность вариантов заданий и правил показа находится на стадии Preview.
-
--override-variants-file— путь к файлу в форматеYAMLс вариантами заданий. Необязательный параметр.Пример файла с вариантами заданий
- uuid: <идентификатор_варианта_1> description: <описание_варианта_1> complexity: <сложность_задания> pre_check_type: <основное_задание> challenge_type: <дополнительное_задание> - uuid: <идентификатор_варианта_2> description: <описание_варианта_2> complexity: <сложность_задания> pre_check_type: <основное_задание> challenge_type: <дополнительное_задание>Где:
uuid— уникальный идентификатор варианта задания.description— описание варианта задания.complexity— сложность задания, которое увидит пользователь.pre_check_type— тип основного задания, которое предлагается решить пользователю.challenge_type— тип дополнительного задания, которое предлагается решить пользователю.
-
--security-rules-file— путь к файлу в форматеYAMLс правилами для входящего трафика, которые будут определять, какой вариант капчи показывать. Необязательный параметр.Пример файла с правилами для входящего трафика
- name: <название_правила_1> priority: "<приоритет_правила_1>" description: <описание_правила_1> override_variant_uuid: <идентификатор_варианта_задания> condition: host: hosts: - exact_match: example.com - exact_match: example.net - name: <название_правила_2> priority: "<приоритет_правила_2>" description: <описание_правила_2> override_variant_uuid: <идентификатор_варианта_задания> condition: source_ip: geo_ip_match: locations: - ru - kzГде:
-
name— имя правила. -
priority— приоритет правила от1до999999.Правила проверяются в порядке приоритета от меньшего к большему:
1,2и так далее. Если трафик соответствует нескольким правилам, к нему применится первое сработавшее правило. -
description— описание правила. Необязательный параметр. -
override_variant_uuid— идентификатор варианта задания, которое будет отображаться в случае соответствия трафика правилу. Если параметр не указан, будет отображаться задание по умолчанию. -
condition— одно или несколько условий для входящего трафика. Необязательный параметр.
-
-
Результат:
id: bpnd6cm6qpr5********
folder_id: b1g0ijbfaqsn********
cloud_id: b1gia87mbaom********
client_key: ysc1_2lla0Yn6dhlnEaTv2QNg2BhuA8Nqlyk4L7pZk3dz********
created_at: "2025-03-02T21:38:48.830498Z"
name: my-first-captcha
allowed_sites:
- exmaple.ru
- exmaple.kz
complexity: MEDIUM
style_json: '{"focus-color":"rgb(250, 192, 0)","base-background-color":"#fff"}'
turn_off_hostname_check: true
pre_check_type: CHECKBOX
challenge_type: IMAGE_TEXT
security_rules:
- name: rule1
priority: "11"
description: My first security rule.
condition:
host:
hosts:
- exact_match: example.com
- exact_match: example.net
override_variant_uuid: variant-1
- name: rule2
priority: "12"
condition:
source_ip:
geo_ip_match:
locations:
- ru
- kz
override_variant_uuid: variant-2
override_variants:
- uuid: variant-1
description: override variant 1
complexity: EASY
pre_check_type: CHECKBOX
challenge_type: SILHOUETTES
- uuid: variant-2
description: override variant 2
complexity: HARD
pre_check_type: SLIDER
challenge_type: KALEIDOSCOPE
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать капчу:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_smartcaptcha_captcha" "<имя_капчи>" { name = "<имя_капчи>" turn_off_hostname_check = True style_json = "<внешний_вид_капчи>" complexity = "<сложность_задания>" pre_check_type = "<тип_основного_задания>" challenge_type = "<тип_дополнительного_задания>" allowed_sites = [ "<первый_хост>", "<второй_хост>" ] # Первый вариант задания override_variant { uuid = "<идентификатор_варианта_1>" description = "<описание_варианта_1>" complexity = "<сложность_задания>" pre_check_type = "<основное_задание>" challenge_type = "<дополнительное_задание>" } # Второй вариант задания override_variant { uuid = "<идентификатор_варианта_2" description = "<описание_варианта_2>" complexity = "<сложность_задания>" pre_check_type = "<основное_задание>" challenge_type = "<дополнительное_задание>" } # Первое правило security_rule { name = "<название_правила_1>" priority = <приоритет_правила_1> description = "<описание_правила_1>" override_variant_uuid = "<идентификатор_варианта_задания>" condition { host { hosts { exact_match = "example.com" } hosts { exact_match = "example.net" } } } } # Второе правило security_rule { name = "<название_правила_2>" priority = <приоритет_правила_2> description = "<описание_правила_2>" override_variant_uuid = "<идентификатор_варианта_задания>" condition { source_ip { geo_ip_match { locations = ["ru", "kz"] } } } } }Где:
-
name— имя капчи. -
turn_off_hostname_check— отключение проверки домена. Необязательный параметр. -
style_json— внешний вид окна задания и других элементов в форматеJSON. Подробнее смотрите вJSON, сгенерированном с помощью консоли управления . Необязательный параметр. -
complexity— сложность задания по умолчанию, которое увидит пользователь. Возможные значения:EASY— простое задание.MEDIUM— задание среднего уровня сложности.HARD— сложное задание.FORCE_HARD— сложное задание с дополнительным вопросом. От пользователя требуется решение дополнительного задания, вне зависимости от результатов выполнения основного задания.
Примечание
Функциональность вариантов заданий и правил показа находится на стадии Preview.
-
pre_check_type— тип основного задания по умолчанию, которое предлагается решить пользователю. Возможные значения:CHECKBOX— чекбокс.SLIDER— слайдер.
-
challenge_type— тип дополнительного задания по умолчанию, которое предлагается решить пользователю. Возможные значения:IMAGE_TEXT— распознавание текста.SILHOUETTES— силуэт.KALEIDOSCOPE— калейдоскоп.
-
allowed_sites— список хостов в формате IP-адресов или доменных имен. Указывайте адрес без протокола и без/в конце, например,example.com. Капча будет работать и во всех поддоменах указанных доменных имен. Необязательный параметр. -
override_variant— блок с описанием варианта задания. Необязательный параметр.uuid— уникальный идентификатор варианта задания.description— описание варианта задания. Необязательный параметр.complexity— сложность задания, которое увидит пользователь.pre_check_type— тип основного задания, которое предлагается решить пользователю.challenge_type— тип дополнительного задания, которое предлагается решить пользователю.
-
security_rule— блок с описанием правила для входящего трафика, которое будет определять, какой вариант капчи показывать. Необязательный параметр.-
name— имя правила. -
priority— приоритет правила от1до999999.Правила проверяются в порядке приоритета от меньшего к большему:
1,2и так далее. Если трафик соответствует нескольким правилам, к нему применится первое сработавшее правило. -
description— описание правила. Необязательный параметр. -
override_variant_uuid— идентификатор варианта задания, которое будет отображаться в случае соответствия трафика правилу. Если параметр не указан, будет отображаться задание по умолчанию. -
condition— одно или несколько условий для входящего трафика. Необязательный параметр.
-
Более подробную информацию о параметрах ресурса
yandex_smartcaptcha_captcha, см. в документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
или с помощью команды CLI:yc smartcaptcha captcha list -
Чтобы создать капчу, воспользуйтесь методом REST API create для ресурса Captcha или вызовом gRPC API Captcha/Create.
Примеры
Создание капчи для всех запросов
Создайте простую капчу без правил для входящего трафика с именем simple-captcha.
Выполните следующую команду:
yc smartcaptcha captcha create simple-captcha
Результат:
id: bpn7pri980fs********
folder_id: b1g0ijbfaqsn********
cloud_id: b1gia87mbaom********
client_key: ysc1_BFhJblC4DfttmEV6ORqfZK99DuaTQyYxPoF4V6yp********
created_at: "2025-05-29T05:29:05.373420Z"
name: simple-captcha
complexity: MEDIUM
pre_check_type: CHECKBOX
challenge_type: IMAGE_TEXT
-
Опишите в конфигурационном файле параметры ресурса:
resource "yandex_smartcaptcha_captcha" "simple-captcha" { name = "simple-captcha" complexity = "HARD" pre_check_type = "SLIDER" challenge_type = "IMAGE_TEXT" }Более подробную информацию о параметрах ресурса
yandex_smartcaptcha_captcha, см. в документации провайдера. -
Создайте капчу:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
Воспользуйтесь методом API create и передайте в теле запроса идентификатор каталога и имя капчи:
{
"folderId": "b1g0ijbfaqsn********",
"name": "simple-captcha"
}
Создание капчи с правилами входящего трафика
Создайте капчу с правилами входящего трафика с тестовыми характеристиками:
-
Имя:
advanced-captcha. -
Проверка домена: отключена.
-
Внешний вид, описанный в файле
style.json:{ "text-color-primary": "#1e1f20", "base-background-color": "#c7d0d6", "popup-image-container-background-color": "#aab4ba", "base-checkbox-background-color": "#5a7080", "base-checkbox-background-color-checked": "#5a7080", "base-checkbox-border": "2px solid #5a7080", "base-checkbox-spin-color": "#5a7080", "popup-textinput-background-color": "#c7d0d6", "popup-action-button-background-color": "#5a7080", "popup-action-button-background-color-hover": "#485863" } -
Список хостов:
example.ru,example.kz. -
Параметры задания по умолчанию:
- Сложность задания:
HARD. - Тип основного задания:
SLIDER. - Тип дополнительного задания:
IMAGE_TEXT.
- Сложность задания:
-
Параметры первого варианта задания:
- Уникальный идентификатор варианта:
variant-1. - Описание варианта:
Simple variant. - Сложность задания:
EASY. - Тип основного задания:
CHECKBOX. - Тип дополнительного задания:
SILHOUETTES.
- Уникальный идентификатор варианта:
-
Параметры второго варианта задания:
- Уникальный идентификатор варианта:
variant-2. - Описание варианта:
Hard variant. - Сложность задания:
HARD. - Тип основного задания:
SLIDER. - Тип дополнительного задания:
KALEIDOSCOPE.
- Уникальный идентификатор варианта:
-
Параметры первого правила для входящего трафика:
- Имя правила:
rule-1. - Приоритет правила:
11. - Описание правила:
My first security rule. - Идентификатор варианта задания:
variant-1. - Условия для входящего трафика: хост совпадает с
example.comилиexample.net.
- Имя правила:
-
Параметры второго правила для входящего трафика:
- Имя правила:
rule-2. - Приоритет правила:
12. - Описание правила:
My second security rule. - Идентификатор варианта задания:
variant-2. - Условия для входящего трафика: IP принадлежит региону
ruилиkz.
- Имя правила:
Выполните следующую команду:
yc smartcaptcha captcha create \
--name advanced-captcha \
--turn-off-hostname-check \
--allowed-site example.ru,example.kz \
--style-json "$(cat ./style.json)" \
--pre-check-type CHECKBOX \
--challenge-type IMAGE_TEXT \
--complexity HARD \
--override-variants-file captcha-variants.yaml \
--security-rules-file captcha-rules.yaml
Файл с вариантами заданий captcha-variants.yaml
- uuid: variant-1
description: Simple variant
complexity: EASY
pre_check_type: CHECKBOX
challenge_type: SILHOUETTES
- uuid: variant-2
description: Hard variant
complexity: HARD
pre_check_type: SLIDER
challenge_type: KALEIDOSCOPE
Файл с правилами для входящего трафика captcha-rules.yaml
- name: rule1
priority: "11"
description: My first security rule
override_variant_uuid: variant-1
condition:
host:
hosts:
- exact_match: example.com
- exact_match: example.net
- name: rule2
priority: "12"
description: My second security rule
override_variant_uuid: variant-2
condition:
source_ip:
geo_ip_match:
locations:
- ru
- kz
-
Опишите в конфигурационном файле Terraform параметры ресурса с описанием вариантов заданий и правил для входящего трафика:
resource "yandex_smartcaptcha_captcha" "advanced-captcha" { name = "advanced-captcha" turn_off_hostname_check = true style_json = "${file("style.json")}" complexity = "HARD" pre_check_type = "SLIDER" challenge_type = "IMAGE_TEXT" allowed_sites = [ "example.ru", "example.kz" ] override_variant { uuid = "variant-1" description = "Simple variant" complexity = "EASY" pre_check_type = "CHECKBOX" challenge_type = "SILHOUETTES" } override_variant { uuid = "variant-2" description = "Hard variant" complexity = "HARD" pre_check_type = "SLIDER" challenge_type = "KALEIDOSCOPE" } security_rule { name = "rule-1" priority = 11 description = "My first security rule" override_variant_uuid = "variant-1" condition { host { hosts { exact_match = "example.com" } hosts { exact_match = "example.net" } } } } security_rule { name = "rule-2" priority = 12 description = "My second security rule" override_variant_uuid = "variant-2" condition { source_ip { geo_ip_match { locations = ["ru", "kz"] } } } } }Более подробную информацию о параметрах ресурса
yandex_smartcaptcha_captcha, см. в документации провайдера. -
Создайте капчу:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
Воспользуйтесь методом API create и передайте в теле запроса:
{
"folderId": "b1g0ijbfaqsn********",
"name": "advanced-captcha",
"allowedSites": [
"example.ru",
"example.kz"
],
"complexity": "HARD",
"styleJson": "styleJson": "{\"text-color-primary\": \"#1e1f20\", \"base-background-color\": \"#c7d0d6\", \"popup-image-container-background-color\": \"#aab4ba\", \"base-checkbox-background-color\": \"#5a7080\", \"base-checkbox-background-color-checked\": \"#5a7080\", \"base-checkbox-border\": \"2px solid #5a7080\", \"base-checkbox-spin-color\": \"#5a7080\", \"popup-textinput-background-color\": \"#c7d0d6\", \"popup-action-button-background-color\": \"#5a7080\", \"popup-action-button-background-color-hover\": \"#485863\" }",
"turnOffHostnameCheck": "TRUE",
"preCheckType": "SLIDER",
"challengeType": "IMAGE_TEXT",
"securityRules": [
{
"name": "rule-1",
"priority": "11",
"description": "My first security rule",
"condition": {
"host": {
"hosts": [
{ "exactMatch": "example.com" },
{ "exactMatch": "example.net" }
]
}
},
"overrideVariantUuid": "variant-1"
},
{
"name": "rule-2",
"priority": "12",
"description": "My second security rule",
"condition": {
"geoIpMatch": {
"ipRangesMatch": {
"locations": [
"ru",
"kz"
]
}
}
},
"overrideVariantUuid": "variant-2"
}
],
"overrideVariants": [
{
"uuid": "variant-1",
"description": "Simple variant",
"complexity": "EASY",
"preCheckType": "CHECKBOX",
"challengeType": "SILHOUETTES"
},
{
"uuid": "variant-2",
"description": "Hard variant",
"complexity": "HARD",
"preCheckType": "SLIDER",
"challengeType": "SILHOUETTES"
}
]
}