Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Брандмауэр веб-приложений в Azure Front Door позволяет управлять доступом к веб-приложениям на основе заданных условий. Настраиваемое правило брандмауэра веб-приложения (WAF) состоит из числа приоритетов, типа правила, условий соответствия и действия.
Существует два типа настраиваемых правил: правила сопоставления и правила ограничения скорости. Правило сопоставления управляет доступом на основе набора условий сопоставления. Правило ограничения скорости управляет доступом на основе условий соответствия и частоты входящих запросов. Вы можете отключить настраиваемое правило, чтобы предотвратить его оценку, но сохранить конфигурацию.
Дополнительные сведения об ограничении скорости см. в статье "Что такое ограничение скорости для Azure Front Door?".
Приоритет, типы действий и условия соответствия
Вы можете управлять доступом с помощью настраиваемого правила WAF, определяющего номер приоритета, тип правила, массив условий соответствия и действие.
Приоритет
Уникальное целое число, описывающее порядок оценки правил WAF. Правила с значениями с более низким приоритетом оцениваются перед правилами с более высокими значениями. Оценка правила останавливается для любого действия правила, кроме Log. Номера приоритета должны быть уникальными для всех настраиваемых правил.
Действие
Определяет, как маршрутизировать запрос, если соответствует правило WAF. Вы можете выбрать одно из следующих действий, чтобы применить, когда запрос соответствует пользовательскому правилу.
- Разрешить: WAF позволяет запрашивать, регистрировать запись в журналах WAF и выйти из нее.
- Блокировать: запрос заблокирован. WAF отправляет клиенту ответ, не перенаправляя запрос дальше. WAF регистрирует запись в журналах WAF и завершает работу.
- Журнал: WAF регистрирует запись в журналах WAF и продолжает оценивать следующее правило в порядке приоритета.
- Перенаправление: WAF перенаправляет запрос на указанный универсальный код ресурса (URI), регистрирует запись в журналах WAF и завершает работу.
Условие соответствия
Определяет переменную соответствия, оператор и значение соответствия. Каждое правило может содержать несколько условий соответствия. Условие соответствия может быть основано на географическом расположении, IP-адресах клиента (CIDR), размере или сопоставлении строк. Сопоставление строк может осуществляться по списку переменных соответствия.
Переменная сопоставления
- МетодЗапроса
- Строка запроса
- PostArgs
- RequestUri (URI запроса)
- ЗаголовокЗапроса
- ТелоЗапроса
- Файлы cookie
Оператор
- Any: Часто используется для определения действия по умолчанию, если правила не соответствуют. Any является оператором Match ALL.
- Равно
- Содержит
- LessThan: ограничение размера
- GreaterThan: ограничение размера
- LessThanOrEqual: ограничение размера
- GreaterThanOrEqual: ограничение размера
- Начинается с
- ЗаканчиваетсяНа
- Регулярное выражение
Регулярное выражение
Не поддерживает следующие операции:
- Обратные ссылки и запись частей выражений
- Произвольные выражения нулевой ширины
- Ссылки на подпрограммы и рекурсивные шаблоны
- Условные шаблоны
- Команды управления обратным отслеживанием
- Однобайтовая директива \C
- Директива соответствия новой строке \R
- Начало сопоставления с шаблоном и сброс директивы \K
- Выноски и встроенный код
- Атомарное группирование и поглощающие квантификаторы
Отрицать [необязательно]
Вы можете установить
negate
условие на true, если результат условия должен быть отрицательным.Преобразование [необязательно]
Список строк с именами преобразований, которые необходимо выполнить до попытки сопоставления. Преобразования могут быть следующими.
- Верхний регистр
- Нижний регистр
- Подстригать
- Удалить нулевые значения
- декодирование URL
- URL-кодирование
Значение соответствия
Поддерживаемые значения метода HTTP-запроса включают:
- ПОЛУЧАЙ
- ПОСТ
- ПОСТАВИТЬ
- Заголовок
- Удалить
- замок
- РАЗБЛОКИРОВАТЬ
- ПРОФИЛЬ
- ПАРАМЕТРЫ
- ПРОПФИНД
- ПРОППАТЧ
- МККОЛ
- КОПИРОВАТЬ
- ПЕРЕМЕСТИТЬ
- ПАТЧ
- ПОДКЛЮЧИТЬСЯ
Примеры
Рассмотрим следующие примеры.
Сопоставление на основе параметров HTTP-запроса
Предположим, необходимо настроить настраиваемое правило так, чтобы разрешать запросы, которые соответствуют следующим двум условиям:
- Значение заголовка
Referer
равно известному значению. - Строка запроса не содержит слово
password
.
Ниже приведен пример описания JSON настраиваемого правила.
{
"name": "AllowFromTrustedSites",
"priority": 1,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestHeader",
"selector": "Referer",
"operator": "Equal",
"negateCondition": false,
"matchValue": [
"www.mytrustedsites.com/referpage.html"
]
},
{
"matchVariable": "QueryString",
"operator": "Contains",
"matchValue": [
"password"
],
"negateCondition": true
}
],
"action": "Allow"
}
Блокировка HTTP-запросов PUT
Предположим, необходимо блокировать любой запрос, использующий метод HTTP PUT.
Ниже приведен пример описания JSON настраиваемого правила.
{
"name": "BlockPUT",
"priority": 2,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestMethod",
"selector": null,
"operator": "Equal",
"negateCondition": false,
"matchValue": [
"PUT"
]
}
],
"action": "Block"
}
Ограничение по размеру
WAF Azure Front Door позволяет создавать пользовательские правила, которые применяют ограничение длины или размера для части входящего запроса. Это ограничение размера измеряется в байтах.
Предположим, нужно блокировать запросы, в которых длина URL-адреса превышает 100 символов.
Ниже приведен пример описания JSON настраиваемого правила.
{
"name": "URLOver100",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "GreaterThanOrEqual",
"negateCondition": false,
"matchValue": [
"100"
]
}
],
"action": "Block"
}
Сопоставление на основе URI запроса
Предположим, необходимо разрешить запросы, в которых URI содержит имя входа.
Ниже приведен пример описания JSON настраиваемого правила.
{
"name": "URIContainsLogin",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "Contains",
"negateCondition": false,
"matchValue": [
"login"
]
}
],
"action": "Allow"
}
Копирование и дублирование пользовательских правил
Пользовательские правила можно дублировать в заданной политике. При дублировании правила необходимо указать уникальное имя правила и уникальное значение приоритета. Кроме того, пользовательские правила можно скопировать из одной политики WAF Azure Front Door в другую, если политики находятся в одной подписке. При копировании правила из одной политики в другую необходимо выбрать политику WAF Azure Front Door, в которую вы хотите скопировать правило. Выбрав политику WAF, необходимо указать уникальное имя правила и назначить ранг приоритета.