Условия
Примечание
Функциональность списков адресов находится на стадии Preview.
Вы можете задать следующие условия для правил:
|
Тип |
Виды сопоставления |
Значения |
Пример |
Логический оператор |
|
|
|
|
|
или |
|
|
|
Формат |
|
и |
|
|
|
Путь запроса, начало пути запроса или регулярное |
|
Не применяется |
|
|
|
Формат |
|
и |
|
|
|
Значения заголовка |
|
или |
|
|
|
Метод HTTP-запроса |
|
или |
|
|
|
Формат |
|
и |
|
|
|
Строка в теле HTTP-пакета или |
|
или |
Формат регулярных выражений
Регулярные выражения можно использовать в условиях HTTP header, Request URI, Query Match, Host, HTTP method, Cookie, HTTP body. Так как в этих условиях есть типы сопоставления «Соответствует регулярному выражению» и «Не соответствует регулярному выражению».
Группы операторов для регулярных выражений
-
Квантификаторы. Определяют количество допустимых повторений элемента.
-
*— ноль или более вхождений любых символов,a*— ноль или более вхождений символаa,a*b— любое вхождение символаaперед символомb.Пример:
a*— пустая строка,a,aa,aaaи так далее. -
а+— одно или более вхождений символаa.Пример:
a+—a,aa,aaaи так далее. -
a?— ноль или одно вхождение символаa.Пример:
https?://— соответствуетhttp://иhttps:// -
{n}— n вхождений. Пример:a{3}—aaa. -
{n,m}— от n до m вхождений. Пример:a{3,5}—aaa,aaaa,aaaaa. -
{n,}— не менее n вхождений. Пример:a{3,}—aaa,aaaa,aaaaaи так далее.
-
-
Символы и операции.
-
.— любой одиночный символ (кроме новой строки).Пример:
a.bсоответствуетaab,acb, но неab. -
[abc]— один из символов внутри квадратных скобок.Пример:
[abc]соответствуетa,b,c. -
[^abc]— любой символ, кроме указанных в квадратных скобках.Пример:
[^abc]соответствует любому символу, кромеa,b,c. -
[a-z]— любой символ в диапазонеaдоz.Пример:
[a-z]соответствует любой строчной букве отaдоz. -
a|b— альтернатива, либоa, либоb.Пример:
example|domain— либоexample, либоdomain. -
\\w— любая буква. -
\\W— не буква (цифра, подчеркивание, знаки препинания, пробел и так далее). -
\\d— цифра и\\D— не цифра. -
\\s— пробел и\\S— не пробел.
-
Примечание
Чтобы использовать символ не как оператор регулярного выражения или специальный символ, экранируйте его с помощью \. Например, надо экранировать символы . + * [ ] ( ) { } ^ $ ?.
Регистр в регулярных выражениях
-
Учитывать регистр. Введите регулярное выражение в нужном регистре.
Пример:
exaMpleсоответствует строкеexaMple. -
Не учитывать регистр. В начало выражения добавьте символы
(?i).Пример:
(?i)exampleсоответствует строкамexample,EXaMple,EXAMPLEи так далее.
Примеры регулярных выражений
-
User-Agent:\s*— блокировать запросы, у которых значение заголовкаUser-Agentпустое или состоит только из пробелов.В этом выражении
\s*— ноль или более пробелов. -
\\[\'\"\.\;]— блокировать запросы, содержащие\перед подозрительным символом (бэкслеш-инъекции).В этом выражении
\\— бэкслеш,[\'\"\.\;]— любой символ из скобок. -
a{100,}— блокировать запросы, содержащие длинные последовательности одинаковых символов, что может быть признаком атаки.В этом выражении
a{100,}— 100 или более символовaподряд. -
--.*— блокировать запросы, содержащие комментарии в SQL-запросах, что может быть признаком SQL-инъекции.В этом выражении
--— начало SQL-комментария,.*— ноль или более любых символов.