Условия
Условия определяют, к каким HTTP-запросам применяется правило Smart Web Security.
Объединение условий
В одном правиле может быть несколько условий, а внутри одного условия — несколько проверок.
Условия разных типов (например, IP и HTTP header) объединяются оператором И — запрос должен соответствовать каждому из них.
Внутри одного условия логика объединения проверок зависит от его типа. Для IP, HTTP-заголовков, параметров запроса и cookie действует И: должны выполняться все настроенные проверки.
В одной проверке может быть несколько значений. При проверке принадлежности IP региону между значениями действует ИЛИ: достаточно совпадения с одним из указанных регионов.
В проверке IP не принадлежит региону отрицание применяется ко всему набору значений: адрес не должен относиться ни к одному из указанных регионов.
Если достаточно выполнения одного из условий или одной из проверок, создайте для них отдельные правила с одинаковым действием. При настройке учитывайте порядок применения правил.
Примеры объединения условий
Пример с IP-адресом и HTTP-заголовком
В правиле настроены два условия:
- IP — адрес принадлежит одному из регионов
ruилиkzи входит в выбранный список адресов. - HTTP header — значение заголовка
User-Agentначинается сcurl/.
Допустим, сервис определил регион IP-адреса клиента как ru, а сам адрес входит в выбранный список. Клиент отправляет запрос:
GET /api/orders HTTP/1.1
Host: api.example.com
User-Agent: curl/8.0
Запрос соответствует обоим условиям: IP-адрес принадлежит допустимому региону и входит в список, а значение заголовка начинается с curl/.
Если заменить заголовок на User-Agent: Mozilla/5.0, запрос перестанет соответствовать условиям правила, хотя обе проверки IP по-прежнему выполнены.
Пример с исключением регионов и списка IP-адресов
В условии IP настроены две проверки: IP не принадлежит региону со значениями ru, kz, tr, ge и IP не принадлежит списку с выбранным списком адресов.
Возможны два результата проверки:
- IP-адрес вне перечисленных регионов и вне списка — обе проверки выполнены, запрос соответствует условию.
- IP-адрес относится к любому из перечисленных регионов или входит в список — условие не выполнено.
В правилах ARL соответствие условиям само по себе не означает блокировку: действие применяется при превышении лимита запросов.
Описание условий
В таблице указаны способы сопоставления, форматы значений и примеры настройки для каждого типа условия.
Проверка Соответствует условиям на списки позволяет сопоставлять значение со списками строк или регулярных выражений. Можно проверять как совпадение, так и отсутствие совпадений.
|
Тип и способы сопоставления |
Значения и пример |
|
|
В зависимости от проверки укажите:
Например, проверке Совпадает или принадлежит диапазону со значением |
|
|
В поле Ключ укажите имя HTTP-заголовка. Для сопоставления со строкой или регулярным выражением задайте в поле Значение полное значение заголовка, его префикс или регулярное выражение Пример: Ключ — Проверки заголовков объединяются оператором И. |
|
|
Для Request path задайте в поле Значение путь без схемы, домена и параметров запроса, его префикс или регулярное выражение библиотеки PIRE. Параметры запроса проверяются отдельно в Query Match. Например, в URL |
|
|
В поле Ключ укажите имя параметра запроса. Для сопоставления со строкой или регулярным выражением задайте в поле Значение полное значение параметра, его префикс или регулярное выражение библиотеки PIRE. Пример: Ключ — Проверки параметров запроса объединяются оператором И. |
|
|
Проверяется значение заголовка |
|
|
Укажите метод HTTP-запроса |
|
|
В поле Ключ укажите имя cookie. Для сопоставления со строкой или регулярным выражением задайте в поле Значение полное значение cookie, его префикс или регулярное выражение библиотеки PIRE. Например, проверка Существует с ключом Проверки cookie объединяются оператором И. |
|
|
Строка, начало строки или регулярное выражение библиотеки PIRE для сопоставления с телом HTTP-запроса. При проверке Совпадает с и значении Условие Тело запроса анализируется как обычный текст, без разбора структуры JSON или XML. Для корректного сопоставления используйте текстовое тело запроса с соответствующим заголовком
Дополнительно закодированные данные, например в формате Base64, не декодируются при сопоставлении. Логический оператор: ИЛИ |
|
|
Список имен легитимных ботов, принадлежащих различным компаниям и сервисам: |
|
|
Список категорий ботов: |
|
|
Является ли данный бот проверенным и одобренным: |
|
|
Значение или диапазон значений оценки роботности от Интерпретация оценки:
Проверки оценки объединяются оператором И. Например, |
|
|
Отпечаток SSL/TLS‑соединения по методу JA3 Отпечаток формируется на основе версии TLS, наборов шифров, расширений, алгоритмов подписи и других параметров. Примеры значений:
|
Формат регулярных выражений
Smart Web Security использует регулярные выражения библиотеки PIRE
Особенности синтаксиса
Чтобы использовать специальный символ как обычный, экранируйте его обратным слешем \. Например, \. соответствует точке.
В PIRE \w соответствует латинской или русской букве, а \W — любому другому символу. Цифры и _ в \w не входят.
Регистр в регулярных выражениях
Чтобы не учитывать регистр, добавьте (?i) в начало выражения. Например, (?i)example соответствует строкам example, EXaMple и EXAMPLE.
Примеры регулярных выражений
В примерах используется проверка Соответствует регулярному выражению:
- Пути API. Для Request path укажите
/api/(v1|v2)/orders. Выражение соответствует путям/api/v1/ordersи/api/v2/orders, но не/api/v3/orders. - Числовой параметр запроса. Для Query Match укажите ключ
order_idи выражение[0-9]+. Ему соответствует значение12345, но неabc. - Поддомены. Для Host укажите
(api|admin)\.example\.com. Выражение соответствует значениямapi.example.comиadmin.example.com, но неapi-example.com. Обратный слеш перед каждой точкой позволяет сопоставлять ее как обычный символ.