Как настроить ответ Платформы в правилах обработки запросов?
При обработке запроса правилами с действиями botChallenge и deny предусмотрена возможность настройки внешнего вида экранов проверки и блокировки. Это позволяет сохранить единый стиль для пользователей при прохождении проверок доступа к веб-ресурсу.
Как настроить ответ Платформы при блокировке запроса действием deny?¶
Необходимые условия для выполнения процедуры
Сервисы в составе Аккаунта:
Права доступа вашей учетной записи пользователя:
1. Создайте Шаблон ответа¶
- Перейдите в клиентском портале NGENIX Multidesk на страницу Правила обработки запросов (раздел Шаблоны ответов в боковом меню настроек Аккаунта).
- Нажмите кнопку +Добавить шаблон. В всплывающем окне:
- Укажите Название шаблона.
- Выберите в поле Применение шаблона значение Блокировка правилом обработки запросов (deny).
- Укажите требуемый Формат шаблона (HTML или JSON).
- Нажмите кнопку Сохранить.
- Вы будете переведены на страницу Управление шаблоном вновь созданного шаблона ответа.
-
Вставьте свой код в соответствующем формате:
- Максимальный размер шаблона составляет 10 Кбайт. Это ограничение проверяется на платформе при создании шаблона. В случае если размер шаблона превышает допустимый, необходимо разместить крупные файлы (изображения, стили, шрифты) в отдельном, удобном для вас хранилище и указать ссылки на файлы в шаблоне. Для этой цели вы можете использовать сервис Cloud Object Storage:
- Организуйте хранение крупных файлов с доступом по S3, согласно инструкции: Как организовать хранение данных с доступом по S3?
- Создайте Сервисную конфигурацию с архитектурой Проксирование/кэширование содержимого веб-ресурса и выберите в качестве источника данных созданную корзину хранения данных.
- Укажите ссылки на файлы в HTML с использованием адреса
[EDGE-DOMAIN]Сервисной конфигурации (пример:https://s12345.cdn.ngenix.net/logo.png)
-
В шаблоне вы можете использовать переменные Платформы для отображения нужной вам информации. Список доступных переменных:
- ${http.request.id} – ID запроса;
- ${ip.addr} – IP запроса;
- ${http.request.host} – домен;
- ${http.request.rawuri} – URI;
- ${ruleset.id} – ID набора правил;
- ${ruleset.rule.id}– ID правила;
- ${http.request.time} – время блокировки по UTC в ISO-формате.
Мы рекомендуем всегда отображать на страницах блокировки информацию об IP-адресе, ID-запроса и времени блокировки. Это значительно сократит время выяснения причин блокировки запроса при обращении в техническую поддержку.
-
Для удобства использования при создании шаблона мы уже добавили минимально необходимые HTML-теги:
- Используйте ответ в формате JSON для корректной обработки запроса на стороне мобильного приложения.
- Максимальный размер шаблона составляет 10 Кбайт. Это ограничение проверяется на платформе при создании шаблона.
-
В шаблоне вы можете использовать переменные Платформы для отображения нужной вам информации.
Список доступных переменных:
- ${http.request.id} – ID запроса;
- ${ip.addr} – IP запроса;
- ${http.request.host} – домен;
- ${http.request.rawuri} – URI;
- ${ruleset.id} – ID набора правил;
- ${ruleset.rule.id}– ID правила;
- ${http.request.time} – время блокировки по UTC в ISO-формате.
- Максимальный размер шаблона составляет 10 Кбайт. Это ограничение проверяется на платформе при создании шаблона. В случае если размер шаблона превышает допустимый, необходимо разместить крупные файлы (изображения, стили, шрифты) в отдельном, удобном для вас хранилище и указать ссылки на файлы в шаблоне. Для этой цели вы можете использовать сервис Cloud Object Storage:
2. При необходимости, проверьте корректность отображения настраиваемого ответа Платформы¶
- Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
- Перейдите на страницу Управление набором правил.
- Создайте новое правило обработки запросов с действием deny и укажите в критериях свой IP-адрес (или другой признак устройства, на котором вы будете проверять ответ Платформы). В поле Настроить содержание ответа выберите Шаблон ответа, а в поле Шаблон ответа выберите ранее созданный шаблон.
-
Нажмите кнопку Сохранить.
После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.
-
После сохранения настроек правила вы можете проверить ответ Платформы по ссылке:
https://[EDGE-DOMAIN]/Где[EDGE-DOMAIN]— это доменное имя Сервисной конфигурации в адресном пространстве NGENIX, к которой привязан набор правил обработки запросов с созданным в шаге 3 правилом. EDGE-DOMAIN является частью реквизитов Сервисной конфигурации.
Мы рекомендуем проверять корректность отображения настраиваемого ответа Платформы в Сервисной конфигурации и наборе правил, которые не задействованы в обслуживании ваших основных веб-ресурсов.
3. Выберите Шаблон ответа в правиле обработки запросов¶
- Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
- Перейдите на страницу Управление набором правил.
- При создании и/или редактировании правила обработки запросов с действием deny в поле Настроить содержание ответа выберите Шаблон ответа, а в поле Шаблон ответа выберите ранее созданный шаблон.
-
Нажмите кнопку Сохранить.
После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.
Как настроить ответ Платформы при блокировке запроса действием botChallenge?¶
Необходимые условия для выполнения процедуры
Сервисы в составе Аккаунта:
Права доступа вашей учетной записи пользователя:
1. Создайте Шаблон ответа¶
- Перейдите в клиентском портале NGENIX Multidesk на страницу Правила обработки запросов (раздел Шаблоны ответов в боковом меню настроек Аккаунта).
- Нажмите кнопку +Добавить шаблон. В всплывающем окне:
- Укажите Название шаблона.
- Выберите в поле Применение шаблона значение Проверка запроса (действие botChallenge).
- Нажмите кнопку Сохранить.
- Вы будете переведены на страницу Управление шаблоном вновь созданного шаблона ответа.
-
Вставьте свой HTML-код:
- Максимальный размер шаблона составляет 10 Кбайт. Это ограничение проверяется на платформе при создании шаблона. В случае если размер шаблона превышает допустимый, необходимо разместить крупные файлы (изображения, стили, шрифты) в отдельном, удобном для вас хранилище и указать ссылки на файлы в шаблоне. Для этой цели вы можете использовать сервис Cloud Object Storage.
-
В шаблоне вы можете использовать переменные Платформы для отображения нужной вам информации.
Список доступных переменных:
- ${http.request.id} – ID запроса;
- ${ip.addr} – IP запроса;
- ${http.request.host} – домен;
- ${http.request.rawuri} – URI;
- ${ruleset.id} – ID набора правил;
- ${ruleset.rule.id} – ID правила;
- ${http.request.time} – время блокировки по UTC в ISO-формате.
Мы рекомендуем всегда отображать на страницах блокировки информацию об IP-адресе, ID-запроса и времени блокировки. Это значительно сократит время выяснения причин блокировки запроса при обращении в техническую поддержку.
При обработке запроса правилом с действием botChallenge Платформа возвращает конечному пользователю в ответ на запрос HTML-страницу, на которой будут выполнены выбранные в настройках действия проверки. В зависимости от выбранных проверок и их результата конечному пользователю могут отображаться разные состояния (экраны) данной HTML-страницы:
- Экран проверки запроса во время неинтерактивных проверок (Compute и CSS);
- Экран проверки Captcha;
- Экран блокировки запроса по результатам любой проверки;
-
Экран обнаружения режима блокировки на устройствах Apple.
Проверка CSS в рамках действия botChallenge всегда блокирует запросы с устройств Apple, которые находятся в режиме блокировки. Это происходит из-за ограничений на выполнение WebAssembly на устройстве. Чтобы успешно пройти проверку CSS, необходимо либо отключить режим блокировки, либо настроить исключение для вашего браузера в настройках устройства.
-
Экран при отсутствии поддержки JavaScript у источника запроса.
С помощью шаблона ответа вы можете настроить внешний вид каждого экрана. Для удобства настройки при создании шаблона мы уже добавили пример с минимально необходимыми HTML-тегами:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Доступ к сайту временно ограничен владельцем веб-ресурса.</title>
</head>
<body>
<div class="main">
<section id="default-challenge-section" style="display: none;">
<!-- Секция отвечает за состояние страницы во время неинтерактивных проверок - Compute и CSS. Далее вставьте свой HTML-код. -->
<div id="default-challenge-container"></div>
</section>
<section id="interactive-challenge-section" style="display: none;">
<!-- Секция отвечает за состояние страницы во время интерактивных проверок - Captcha. Далее вставьте свой HTML-код. -->
<div id="interactive-challenge-container"></div>
</section>
<section id="error-section" style="display: none;">
<div id="error-default" style="display: none;">
<!-- Секция отвечает за состояние страницы при блокировке запроса в результате любой из проверок (error-default). Далее вставьте свой HTML-код. -->
<button id="report" type="button">Скачать отчёт</button>
</div>
<div id="error-lockdown" style="display: none;">
<!-- Секция отвечает за состояние страницы при обнаружении Lockdown Mode на устройствах Apple (error-lockdown). Далее вставьте свой HTML-код -->
</div>
</section>
<noscript>
<!-- Секция отвечает за состояние страницы, если устройство не может выполнить JS-код (отключена поддержка JS в браузере или включен блокировщик выполнения JS). Далее вставьте свой HTML-код. -->
</noscript>
</div>
${BOT_CHALLENGE_SCRIPT}
</body>
</html>
- Каждый тег отвечает за определенный этап проверки. Вы можете настроить внешний вид для каждого этапа проверки, вставив HTML-код в соответствующий тег.
- Плейсхолдер
${BOT_CHALLENGE_SCRIPT}является обязательным и должен быть размещен перед закрывающим тегом</body>для загрузки проверок. - Тег
<noscript>является обязательным. - Максимальный размер шаблона составляет 10 Кбайт. Это ограничение проверяется на платформе при создании шаблона. В случае если размер шаблона превышает допустимый, необходимо разместить крупные файлы (изображения, стили, шрифты) в отдельном, удобном для вас хранилище и указать ссылки на файлы в шаблоне. Для этой цели вы можете использовать сервис Cloud Object Storage:
- Организуйте хранение крупных файлов с доступом по S3, согласно инструкции: Как организовать хранение данных с доступом по S3?
- Создайте Сервисную конфигурацию с архитектурой Проксирование/кэширование содержимого веб-ресурса и выберите в качестве источника данных созданную корзину хранения данных.
- Укажите ссылки на файлы в HTML с использованием адреса
[EDGE-DOMAIN]Сервисной конфигурации (пример:https://s12345.cdn.ngenix.net/logo.png)
- Для настройки стилей чекбокса Captcha необходимо использовать следующие CSS-переменные, в примере ниже указаны значения по умолчанию:
:root {
--color-primary: black; /* цвет рамки чекбокса, текста и лоадера */
--font-size-sm: 16px; /* размер шрифта в капче */
--font-weight-regular: 400; /* толщина шрифта в капче */
--button-line-height: 1.7; /* высота строки в капче */
--button-letter-spacing: 0; /* межбуквенный отступ в капче */
--button-background: transparent; /* цвет фона капчи */
--button-border: 1px solid #879caf; /* рамка капчи */
--button-border-radius: 5px; /* скругление рамки капчи */
--button-padding: 10px 20px; /* внутренний отступ капчи */
--captcha-max-width: 608px; /* max размер контейнера с капчей */
--captcha-height: 64px; /* высота капчи */
--captcha-column-gap: 12px; /* отступ между чекбоксом и текстом */
--captcha-mark-image: url("data:image/svg+xml..."); /* картинка галочки */
--captcha-mark-size: 30px; /* размер галочки */
--captcha-mark-top: -28%; /* отступ галочки */
--captcha-mark-left: 0; /* отступ галочки */
--captcha-loader-size: 32px; /* размер лоадера в капче */
--captcha-loader-dot-size: 6px; /* размер точек в лоадере капчи */
--checkbox-size: 24px; /* размер чекбокса */
--checkbox-border: 1px solid var(--color-primary, #123a60); /* рамка чекбокса */
}
2. При необходимости, проверьте корректность отображения настраиваемого ответа Платформы¶
- Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
- Перейдите на страницу Управление набором правил.
- Создайте новое правило обработки запросов с действием botChallenge и укажите в критериях свой IP-адрес (или другой признак устройства, на котором вы будете проверять ответ Платформы). В поле Настроить содержание ответа выберите Шаблон ответа, а в поле Шаблон ответа выберите ранее созданный шаблон.
-
Нажмите кнопку Сохранить.
После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.
-
После сохранения настроек правила вы можете проверить ответ Платформы по ссылке:
https://[EDGE-DOMAIN]/Где[EDGE-DOMAIN]— это доменное имя Сервисной конфигурации в адресном пространстве NGENIX, к которой привязан набор правил обработки запросов с созданным в шаге 3 правилом. EDGE-DOMAIN является частью реквизитов Сервисной конфигурации.
Мы рекомендуем проверять корректность отображения настраиваемого ответа Платформы в Сервисной конфигурации и наборе правил, которые не задействованы в обслуживании ваших основных веб-ресурсов.
3. Выберите Шаблон ответа в правиле обработки запросов¶
- Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
- Перейдите на страницу Управление набором правил.
- При создании и/или редактировании правила обработки запросов с действием botChallenge в поле Шаблон ответа выберите ранее созданный шаблон.
-
Нажмите кнопку Сохранить.
После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.