diff --git a/ru/_includes/smartcaptcha/captcha-validation.md b/ru/_includes/smartcaptcha/captcha-validation.md
index 4070069f97..e8a0e601cb 100644
--- a/ru/_includes/smartcaptcha/captcha-validation.md
+++ b/ru/_includes/smartcaptcha/captcha-validation.md
@@ -1,4 +1,7 @@
-{{ captcha-name }}, проверив запрос, присваивает ему идентификатор — одноразовый токен. По этому токену вы можете запросить у сервиса результат проверки запроса пользователя. Токен действителен 5 минут. По истечении этого времени токен становится недействительным и пользователю необходимо снова пройти проверку.
+Рекомендуем добавлять проверку {{ captcha-name }} для действий пользователя, требующих верификации.
+Например, чтобы проверить отправку формы, добавьте проверку капчи на действие отправки.
+
+{{ captcha-name }} проверяет запрос и присваивает ему идентификатор — одноразовый токен. По этому токену вы можете запросить у сервиса результат проверки запроса пользователя. Токен действителен 5 минут. По истечении этого времени токен становится недействительным, и пользователю необходимо снова пройти проверку.
После проверки токен загружается в элемент `` на странице пользователя. Например:
@@ -14,10 +17,17 @@
* `
` — элемент `div` с виджетом.
* `value` — значение токена.
-Чтобы узнать результат проверки, отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate`, передав параметры в формате `x-www-form-urlencoded`:
+Отправьте одноразовый токен на ваш бэкенд и выполните его проверку в течение пяти минут.
-```
-secret=<ключ_сервера>&token=<токен>&ip=
+Чтобы узнать результат проверки, отправьте POST-запрос на адрес `https://smartcaptcha.yandexcloud.net/validate` с типом содержимого `x-www-form-urlencoded`:
+
+```text
+POST https://{{ captcha-domain }}/validate HTTP/1.1
+Content-Type: application/x-www-form-urlencoded
+
+secret=<ключ_сервера>&
+token=<токен>&
+ip=
```
Где:
diff --git a/ru/_includes/smartcaptcha/query-parameters.md b/ru/_includes/smartcaptcha/query-parameters.md
index 51c3598690..68676e2051 100644
--- a/ru/_includes/smartcaptcha/query-parameters.md
+++ b/ru/_includes/smartcaptcha/query-parameters.md
@@ -1,3 +1,3 @@
* `secret` — [ключ сервера](../../smartcaptcha/concepts/keys.md);
-* `token` — одноразовый токен, полученный после прохождения проверки;
+* `token` — одноразовый токен, полученный после проверки;
* `ip` — IP-адрес пользователя, с которого пришел запрос на проверку токена. Этот параметр не обязателен, однако мы просим передавать IP-адрес пользователя при запросах. Это помогает улучшить качество работы {{ captcha-name }}.
\ No newline at end of file
diff --git a/ru/_tutorials/security/invisible-captcha-android.md b/ru/_tutorials/security/invisible-captcha-android.md
index 1556fcd641..7855de5d61 100644
--- a/ru/_tutorials/security/invisible-captcha-android.md
+++ b/ru/_tutorials/security/invisible-captcha-android.md
@@ -48,7 +48,7 @@
```kotlin
val webView = findViewById(R.id.webViewCaptcha)
- webView.loadUrl("URL_страницы_с_капчей?sitekey=<ключ_клиентской_части>&invisible=true")
+ webView.loadUrl("URL_страницы_с_капчей?sitekey=<ключ_клиента>&invisible=true")
```
Где:
@@ -84,20 +84,25 @@
## Получите результат прохождения капчи {#get-result}
1. Сохраните токен прохождения капчи. Он вернется в методе `onGetToken(token: String)`, когда сервис обработает попытку.
-1. Для проверки токена отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate`, передав параметры в формате `x-www-form-urlencoded`:
+1. Чтобы узнать результат проверки, отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate` с типом содержимого `x-www-form-urlencoded`:
{% include [query-parameters](../../_includes/smartcaptcha/query-parameters.md) %}
{% note info %}
- Данная логика должна выполняться на бэкенде. В само Android-приложение секретный ключ `secret` попасть не должен.
+ Данная логика должна выполняться на бэкенде. В само Android-приложение ключ сервера `secret` попасть не должен.
{% endnote %}
>Пример запроса:
>
>```text
- >https://{{ captcha-domain }}/validate?secret=<ключ_сервера>&ip=&token=<токен>
+ >POST https://{{ captcha-domain }}/validate HTTP/1.1
+ >Content-Type: application/x-www-form-urlencoded
+ >
+ > secret=<ключ_сервера>&
+ > token=<токен>&
+ > ip=
>```
1. Получите [ответ с сервера](../../smartcaptcha/concepts/validation.md). Он содержит JSON-объект с полями `status` и `message`.
diff --git a/ru/_tutorials/security/quickstart-android.md b/ru/_tutorials/security/quickstart-android.md
index adcab587ff..6611c576b8 100644
--- a/ru/_tutorials/security/quickstart-android.md
+++ b/ru/_tutorials/security/quickstart-android.md
@@ -32,11 +32,11 @@
1. Создайте **WebView** и добавьте его на экран.
1. Загрузите в **WebView** URL веб-страницы с капчей.
-1. Вставьте в URL [query-параметр](../../smartcaptcha/concepts/widget-methods.md#methods) `sitekey=<ключ_клиентской_части>`:
+1. Вставьте в URL [query-параметр](../../smartcaptcha/concepts/widget-methods.md#methods) `sitekey=<ключ_клиента>`:
```kotlin
val webView = findViewById(R.id.webViewCaptcha)
- webView.loadUrl("URL_страницы_с_капчей?sitekey=<ключ_клиентской_части>")
+ webView.loadUrl("URL_страницы_с_капчей?sitekey=<ключ_клиента>")
```
1. Добавьте в **WebView** созданный JavaScript Interface. Укажите вторым параметром `NativeClient` — это имя, на которое веб-страница будет отправлять сообщения с помощью функции обратного вызова:
@@ -49,20 +49,25 @@
## Получите результат прохождения капчи {#get-result}
1. Сохраните токен прохождения капчи. Он вернется в методе `onGetToken(token: String)`, когда сервис обработает попытку.
-1. Для проверки токена отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate`, передав параметры в формате `x-www-form-urlencoded`:
+1. Чтобы узнать результат проверки, отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate` с типом содержимого `x-www-form-urlencoded`:
{% include [query-parameters](../../_includes/smartcaptcha/query-parameters.md) %}
{% note info %}
- Данная логика должна выполняться на бэкенде. В само Android-приложение секретный ключ `secret` попасть не должен.
+ Данная логика должна выполняться на бэкенде. В само Android-приложение ключ сервера `secret` попасть не должен.
{% endnote %}
- >Пример запроса:
- >
+Пример запроса:
+
>```text
- >https://{{ captcha-domain }}/validate?secret=<ключ_сервера>&ip=&token=<токен>
+ >POST https://{{ captcha-domain }}/validate HTTP/1.1
+ >Content-Type: application/x-www-form-urlencoded
+ >
+ > secret=<ключ_сервера>&
+ > token=<токен>&
+ > ip=
>```
1. Получите [ответ с сервера](../../smartcaptcha/concepts/validation.md). Он содержит JSON-объект с полями `status` и `message`.
diff --git a/ru/_tutorials/security/quickstart-ios.md b/ru/_tutorials/security/quickstart-ios.md
index 1be19ebb42..9716252e8c 100644
--- a/ru/_tutorials/security/quickstart-ios.md
+++ b/ru/_tutorials/security/quickstart-ios.md
@@ -60,7 +60,8 @@
}
```
-1. После получения токена из метода `captchaDidFinish` отправьте POST-запрос на сервер для проверки `https://{{ captcha-domain }}/validate`, передав параметры в формате `x-www-form-urlencoded`:
+1. Схраните токен прохождения капчи. Он вернется в методе `captchaDidFinish`, когда сервис обработает попытку.
+1. Чтобы узнать результат проверки, отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate` с типом содержимого `x-www-form-urlencoded`:
{% include [query-parameters](../../_includes/smartcaptcha/query-parameters.md) %}
diff --git a/ru/smartcaptcha/concepts/domain-validation.md b/ru/smartcaptcha/concepts/domain-validation.md
index 2565c1cb82..446112a29b 100644
--- a/ru/smartcaptcha/concepts/domain-validation.md
+++ b/ru/smartcaptcha/concepts/domain-validation.md
@@ -2,7 +2,7 @@
При создании капчи указывается список доменов, на которых она будет размещена. По умолчанию {{ captcha-name }} проверяет имя домена и позволяет использовать капчу только на сайтах, которые входят в этот список.
-Проверку можно отключить, но это представляет большой риск для безопасности — капча может быть размещена на любом сайте, и кто угодно сможет использовать ваш [ключ](./keys.md). В этом случае выполняйте проверку самостоятельно на своем сервере. Отключение может быть полезно, когда список имен доменов очень длинный, часто меняется или неизвестен.
+Проверку можно отключить, но это представляет большой риск для безопасности — капча может быть размещена на любом сайте, и кто угодно сможет использовать ваш [ключ клиента](./keys.md). В этом случае выполняйте проверку самостоятельно на своем сервере. Отключение может быть полезно, когда список имен доменов очень длинный, часто меняется или неизвестен.
Чтобы отключить проверку, при [создании](../operations/create-captcha.md) или редактировании капчи включите опцию **{{ ui-key.yacloud.smartcaptcha.label_no-hostname-check }}**.
diff --git a/ru/smartcaptcha/concepts/invisible-captcha.md b/ru/smartcaptcha/concepts/invisible-captcha.md
index 3d5b90c6dc..e0d7694f2f 100644
--- a/ru/smartcaptcha/concepts/invisible-captcha.md
+++ b/ru/smartcaptcha/concepts/invisible-captcha.md
@@ -34,7 +34,7 @@
}
window.smartCaptcha.render('captcha-container', {
- sitekey: '<ключ_клиентской_части>',
+ sitekey: '<ключ_клиента>',
invisible: true, // Сделать капчу невидимой
callback: callback,
});
@@ -63,7 +63,7 @@
}
window.smartCaptcha.render('captcha-container', {
- sitekey: '<ключ_клиентской_части>',
+ sitekey: '<ключ_клиента>',
invisible: true, // Сделать капчу невидимой
callback: callback,
});
@@ -93,7 +93,7 @@
```js
window.smartCaptcha.render('captcha-container', {
- sitekey: '<ключ_клиентской_части>',
+ sitekey: '<ключ_клиента>',
invisible: true,
shieldPosition: 'top-left',
callback: callback,
@@ -129,7 +129,7 @@ window.smartCaptcha.render('captcha-container', {
}
widgetId = window.smartCaptcha.render('captcha-container', {
- sitekey: '<ключ_клиентской_части>',
+ sitekey: '<ключ_клиента>',
invisible: true, // Сделать капчу невидимой
callback: callback,
});
diff --git a/ru/smartcaptcha/concepts/keys.md b/ru/smartcaptcha/concepts/keys.md
index fc4dbda06a..518cf9b3e1 100644
--- a/ru/smartcaptcha/concepts/keys.md
+++ b/ru/smartcaptcha/concepts/keys.md
@@ -5,25 +5,25 @@ description: Из статьи вы узнаете, что такое клиен
# Ключи капчи
-При создании капчи автоматически генерируется пара ключей: клиентский и серверный. Эти ключи генерируются один раз при создании капчи и никогда не меняются.
+При создании капчи автоматически генерируется пара ключей: клиента и сервера. Эти ключи генерируются один раз при создании капчи и никогда не меняются.
-Клиентский ключ (`client_key`) используется для [добавления виджета](./widget-methods.md) {{ captcha-name }} на сайт. Он является публичным и указывается на той странице, где размещен виджет.
+**{{ ui-key.yacloud.smartcaptcha.label_client-key }}** (`client_key`) используется для [добавления виджета](./widget-methods.md) {{ captcha-name }} на сайт. Он является публичным и указывается на той странице, где размещен виджет.
-Серверный ключ (`server_key`) используется бэкендом сайта, чтобы получить [результат проверки](./validation.md#validation-result) запроса пользователя. Серверный ключ — приватный, поэтому храните его в надежном месте. Например, вы можете использовать для этого сервис [{{ lockbox-full-name }}](../../lockbox/).
+**{{ ui-key.yacloud.smartcaptcha.label_server-key }}** (`server_key`) используется бэкендом сайта, чтобы получить [результат проверки](./validation.md#validation-result) запроса пользователя. Ключ сервера — приватный, поэтому храните его в надежном месте. Например, вы можете использовать для этого сервис [{{ lockbox-full-name }}](../../lockbox/).
Одноразовый токен (идентификатор запроса) автоматически генерируется сервисом {{ captcha-name }} и используется при получении [результата проверки](validation.md#validation-result) запроса пользователя. Токен действителен пять минут.
{% note warning %}
-Никогда не пересылайте серверный ключ {{ captcha-name }}, не храните его в незашифрованном виде и не допускайте, чтобы он попал в открытый доступ. Если ключ все-таки оказался в открытом доступе, [создайте новую капчу](../operations/create-captcha.md) и замените ей старую.
+Никогда не пересылайте ключ сервера {{ captcha-name }}. Храните его в надежном месте. Если ключ стал известен третьим лицам, [создайте](../operations/create-captcha.md) новую капчу на смену старой.
{% endnote %}
-Подробнее о том, как получить клиентский и серверный ключи, см. в разделе [{#T}](../operations/get-keys.md).
+Подробнее о том, как получить ключи клиента и сервера, см. в разделе [{#T}](../operations/get-keys.md).
## Формат ключей {#key-format}
-Клиентский ключ всегда имеет префикс `ysc1_`, серверный — `ysc2_`. Следующие 20 символов у них совпадают.
+Ключ клиента всегда имеет префикс `ysc1_`, ключ сервера — `ysc2_`. Следующие 20 символов у них совпадают.
Примеры ключей:
diff --git a/ru/smartcaptcha/concepts/widget-methods.md b/ru/smartcaptcha/concepts/widget-methods.md
index 1324a8ed14..f77d475843 100644
--- a/ru/smartcaptcha/concepts/widget-methods.md
+++ b/ru/smartcaptcha/concepts/widget-methods.md
@@ -35,7 +35,7 @@ description: Вы можете подключить виджет {{ captcha-name
```html
```
@@ -74,8 +74,8 @@ description: Вы можете подключить виджет {{ captcha-name
@@ -109,7 +109,7 @@ description: Вы можете подключить виджет {{ captcha-name
const container = document.getElementById('<идентификатор_контейнера>');
const widgetId = window.smartCaptcha.render(container, {
- sitekey: '<ключ_клиентской_части>',
+ sitekey: '<ключ_клиента>',
hl: '<язык>',
});
}
@@ -147,7 +147,7 @@ description: Вы можете подключить виджет {{ captcha-name
* `container` — контейнер для виджета. Можно передать DOM-элемент или идентификатор контейнера.
* `params` — объект с параметрами для капчи:
- * `sitekey` — [ключ клиентской части](./keys.md).
+ * `sitekey` — [ключ клиента](./keys.md).
* `callback` — функция-обработчик.
* `hl` — язык виджета.
* `test` — включение работы капчи в режиме тестирования. Пользователь всегда будет получать задание. Используйте это свойство только для отладки и тестирования.
@@ -306,7 +306,7 @@ description: Вы можете подключить виджет {{ captcha-name
}
window.smartCaptcha.render('captcha-container', {
- sitekey: '<ключ_клиентской_части>',
+ sitekey: '<ключ_клиента>',
callback: callback,
});
}
diff --git a/ru/smartcaptcha/operations/advanced-method.md b/ru/smartcaptcha/operations/advanced-method.md
index b3d00c9cc2..d5c8969841 100644
--- a/ru/smartcaptcha/operations/advanced-method.md
+++ b/ru/smartcaptcha/operations/advanced-method.md
@@ -46,7 +46,7 @@ description: Следуя данной инструкции, вы сможете
Где:
* `<идентификатор_контейнера>` — идентификатор, сгенерированный на предыдущем шаге;
- * `sitekey` — [ключ клиентской части](../concepts/keys.md);
+ * `sitekey` — [ключ клиента](../concepts/keys.md);
* `hl` — [язык](../concepts/widget-methods.md#render) виджета и задания.
В код callback-функции стоит добавить проверку существования объекта `window.smartCaptcha`, чтобы не вызвать ошибку в случае вызова функции до завершения загрузки JS-скрипта.
diff --git a/ru/smartcaptcha/operations/create-captcha.md b/ru/smartcaptcha/operations/create-captcha.md
index 98bc210c6c..89faa6683a 100644
--- a/ru/smartcaptcha/operations/create-captcha.md
+++ b/ru/smartcaptcha/operations/create-captcha.md
@@ -14,6 +14,8 @@ description: Следуя данной инструкции, вы сможете
* Выбрать тип задания и сложность прохождения капчи.
* Показывать разные варианты капчи в зависимости от параметров входящего запроса. Например, выбрать разную капчу для пользователей из разных регионов.
+Мы рекомендуем создавать отдельные капчи для test, staging и production сред. В противном случае существует риск появления неточных данных из тестовой среды в [{{ monitoring-name }}](../metrics.md).
+
{% include [user-data-to-ml](../../_includes/smartcaptcha/user-data-to-ml.md) %}
{% list tabs group=instructions %}
diff --git a/ru/smartcaptcha/operations/get-keys.md b/ru/smartcaptcha/operations/get-keys.md
index 531e3f00fb..b5739cf93f 100644
--- a/ru/smartcaptcha/operations/get-keys.md
+++ b/ru/smartcaptcha/operations/get-keys.md
@@ -1,6 +1,6 @@
# Получить ключи капчи
-В этом разделе вы узнаете, как получить [ключи капчи](../concepts/keys.md). С помощью клиентского ключа вы можете [добавить виджет](../quickstart.md#add-widget) {{ captcha-name }} на свою страницу. Серверный ключ потребуется для [проверки ответа](../quickstart.md#check-answer) пользователя.
+В этом разделе вы узнаете, как получить [ключи капчи](../concepts/keys.md). С помощью ключа клиента вы можете [добавить виджет](../quickstart.md#add-widget) {{ captcha-name }} на свою страницу. Ключ сервера потребуется для [проверки ответа](../quickstart.md#check-answer) пользователя.
{% list tabs group=instructions %}
@@ -11,6 +11,12 @@
1. Нажмите на имя капчи или [создайте](../quickstart.md#creat-captcha) новую капчу.
1. На вкладке **{{ ui-key.yacloud.common.overview }}** скопируйте значения полей **{{ ui-key.yacloud.smartcaptcha.label_client-key }}** и **{{ ui-key.yacloud.smartcaptcha.label_server-key }}**.
+{% note warning %}
+
+Никогда не пересылайте ключ сервера от {{ captcha-name }}. Храните его в надежном месте. Если ключ стал известен третьим лицам, [создайте](../operations/create-captcha.md) новую капчу и замените ею старую.
+
+{% endnote %}
+
- API {#api}
Чтобы получить [серверный ключ](../concepts/keys.md), воспользуйтесь методом REST API [GetSecretKey](../api-ref/Captcha/getSecretKey.md) для ресурса [Captcha](../api-ref/Captcha/index.md) или вызовом gRPC API [CaptchaService/GetSecretKey](../api-ref/grpc/Captcha/getSecretKey.md).
diff --git a/ru/smartcaptcha/quickstart.md b/ru/smartcaptcha/quickstart.md
index 35fe12b67e..f671fbe4de 100644
--- a/ru/smartcaptcha/quickstart.md
+++ b/ru/smartcaptcha/quickstart.md
@@ -113,10 +113,17 @@ description: Следуя данной инструкции, вы сможете
```
-Для проверки токена нужно отправить POST-запрос на адрес `https://{{ captcha-domain }}/validate`, передав параметры в формате `x-www-form-urlencoded`:
+Отправьте одноразовый токен на ваш бэкенд и выполните его проверку в течение пяти минут.
-```
-secret=<ключ_сервера>&token=<токен>&ip=
+Чтобы узнать результат проверки, отправьте POST-запрос на адрес `https://{{ captcha-domain }}/validate` с типом содержимого `x-www-form-urlencoded`:
+
+```text
+POST https://{{ captcha-domain }}/validate HTTP/1.1
+Content-Type: application/x-www-form-urlencoded
+
+secret=<ключ_сервера>&
+token=<токен>&
+ip=
```
Где:
diff --git a/ru/smartcaptcha/tutorials/mobile-app/website.md b/ru/smartcaptcha/tutorials/mobile-app/website.md
index f503678629..60fa992e2a 100644
--- a/ru/smartcaptcha/tutorials/mobile-app/website.md
+++ b/ru/smartcaptcha/tutorials/mobile-app/website.md
@@ -2,6 +2,6 @@
canonical: '{{ link-docs }}/tutorials/security/mobile-app/website'
---
-# Добавление HTML-страницы для работы {{ captcha-name }}
+# Добавление HTML-страницы для работы {{ captcha-name }} в мобильных приложениях
{% include notitle [website](../../../_tutorials/security/website.md) %}
\ No newline at end of file