Перейти к содержанию

Как настроить ответ Платформы в правилах обработки запросов?

При обработке запроса правилами с действиями botChallenge и deny предусмотрена возможность настройки внешнего вида экранов проверки и блокировки. Это позволяет сохранить единый стиль для пользователей при прохождении проверок доступа к веб-ресурсу.

Как настроить ответ Платформы при блокировке запроса действием deny?

Необходимые условия для выполнения процедуры

Сервисы в составе Аккаунта:

Права доступа вашей учетной записи пользователя:

1. Создайте Шаблон ответа

  1. Перейдите в клиентском портале NGENIX Multidesk на страницу Правила обработки запросов (раздел Шаблоны ответов в боковом меню настроек Аккаунта).
  2. Нажмите кнопку +Добавить шаблон. В всплывающем окне:
    1. Укажите Название шаблона.
    2. Выберите в поле Применение шаблона значение Блокировка правилом обработки запросов (deny).
    3. Укажите требуемый Формат шаблона (HTML или JSON).
    4. Нажмите кнопку Сохранить.
  3. Вы будете переведены на страницу Управление шаблоном вновь созданного шаблона ответа.
  4. Вставьте свой код в соответствующем формате:

    • Максимальный размер шаблона составляет 10 Кбайт. Это ограничение проверяется на платформе при создании шаблона. В случае если размер шаблона превышает допустимый, необходимо разместить крупные файлы (изображения, стили, шрифты) в отдельном, удобном для вас хранилище и указать ссылки на файлы в шаблоне. Для этой цели вы можете использовать сервис Cloud Object Storage:
      1. Организуйте хранение крупных файлов с доступом по S3, согласно инструкции: Как организовать хранение данных с доступом по S3?
      2. Создайте Сервисную конфигурацию с архитектурой Проксирование/кэширование содержимого веб-ресурса и выберите в качестве источника данных созданную корзину хранения данных.
      3. Укажите ссылки на файлы в 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-теги:

    HTML
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body></body>
    </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-формате.

2. При необходимости, проверьте корректность отображения настраиваемого ответа Платформы

  1. Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
  2. Перейдите на страницу Управление набором правил.
  3. Создайте новое правило обработки запросов с действием deny и укажите в критериях свой IP-адрес (или другой признак устройства, на котором вы будете проверять ответ Платформы). В поле Настроить содержание ответа выберите Шаблон ответа, а в поле Шаблон ответа выберите ранее созданный шаблон.
  4. Нажмите кнопку Сохранить.

    После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.

  5. После сохранения настроек правила вы можете проверить ответ Платформы по ссылке: https://[EDGE-DOMAIN]/ Где [EDGE-DOMAIN] — это доменное имя Сервисной конфигурации в адресном пространстве NGENIX, к которой привязан набор правил обработки запросов с созданным в шаге 3 правилом. EDGE-DOMAIN является частью реквизитов Сервисной конфигурации.

Мы рекомендуем проверять корректность отображения настраиваемого ответа Платформы в Сервисной конфигурации и наборе правил, которые не задействованы в обслуживании ваших основных веб-ресурсов.

3. Выберите Шаблон ответа в правиле обработки запросов

  1. Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
  2. Перейдите на страницу Управление набором правил.
  3. При создании и/или редактировании правила обработки запросов с действием deny в поле Настроить содержание ответа выберите Шаблон ответа, а в поле Шаблон ответа выберите ранее созданный шаблон.
  4. Нажмите кнопку Сохранить.

    После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.

Как настроить ответ Платформы при блокировке запроса действием botChallenge?

Необходимые условия для выполнения процедуры

Сервисы в составе Аккаунта:

Права доступа вашей учетной записи пользователя:

1. Создайте Шаблон ответа

  1. Перейдите в клиентском портале NGENIX Multidesk на страницу Правила обработки запросов (раздел Шаблоны ответов в боковом меню настроек Аккаунта).
  2. Нажмите кнопку +Добавить шаблон. В всплывающем окне:
    1. Укажите Название шаблона.
    2. Выберите в поле Применение шаблона значение Проверка запроса (действие botChallenge).
    3. Нажмите кнопку Сохранить.
  3. Вы будете переведены на страницу Управление шаблоном вновь созданного шаблона ответа.
  4. Вставьте свой 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-тегами:

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:
    1. Организуйте хранение крупных файлов с доступом по S3, согласно инструкции: Как организовать хранение данных с доступом по S3?
    2. Создайте Сервисную конфигурацию с архитектурой Проксирование/кэширование содержимого веб-ресурса и выберите в качестве источника данных созданную корзину хранения данных.
    3. Укажите ссылки на файлы в HTML с использованием адреса [EDGE-DOMAIN] Сервисной конфигурации (пример: https://s12345.cdn.ngenix.net/logo.png)
  • Для настройки стилей чекбокса Captcha необходимо использовать следующие CSS-переменные, в примере ниже указаны значения по умолчанию:
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. При необходимости, проверьте корректность отображения настраиваемого ответа Платформы

  1. Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
  2. Перейдите на страницу Управление набором правил.
  3. Создайте новое правило обработки запросов с действием botChallenge и укажите в критериях свой IP-адрес (или другой признак устройства, на котором вы будете проверять ответ Платформы). В поле Настроить содержание ответа выберите Шаблон ответа, а в поле Шаблон ответа выберите ранее созданный шаблон.
  4. Нажмите кнопку Сохранить.

    После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.

  5. После сохранения настроек правила вы можете проверить ответ Платформы по ссылке: https://[EDGE-DOMAIN]/ Где [EDGE-DOMAIN] — это доменное имя Сервисной конфигурации в адресном пространстве NGENIX, к которой привязан набор правил обработки запросов с созданным в шаге 3 правилом. EDGE-DOMAIN является частью реквизитов Сервисной конфигурации.

Мы рекомендуем проверять корректность отображения настраиваемого ответа Платформы в Сервисной конфигурации и наборе правил, которые не задействованы в обслуживании ваших основных веб-ресурсов.

3. Выберите Шаблон ответа в правиле обработки запросов

  1. Перейдите в клиентском портале NGENIX Multidesk на страницу Наборы правил обработки запросов (раздел Обработка запросов в боковом меню настроек Аккаунта).
  2. Перейдите на страницу Управление набором правил.
  3. При создании и/или редактировании правила обработки запросов с действием botChallenge в поле Шаблон ответа выберите ранее созданный шаблон.
  4. Нажмите кнопку Сохранить.

    После сохранения настроек изменение Шаблона ответа в правиле обработки запроса может занять до 6 минут.