← Документация WAF / rate-limiting-rules
Примеры правил rate limiting
Примеры ниже включают образцы конфигураций правил rate limiting.
Пример 1
Следующий правило rate limiting выполняет rate limiting входящих запросов из США, адресованных странице входа, за исключением одного разрешённого IP-адреса.
Когда входящие запросы соответствуют:
Если вы используете редактор выражений:
(http.request.uri.path eq "/login" and ip.src.country eq "US" and ip.src ne 192.0.0.1)
С теми же характеристиками:
- IP
- Идентификатор дата-центра (включено по умолчанию в панели управления, но не отображается)
Пример 2
Следующий правило rate limiting выполняет rate limiting входящих запросов с заданным базовым путём URI, увеличивая счётчик по IP-адресу и переданному API-ключу.
Когда входящие запросы соответствуют:
Если вы используете редактор выражений:
(http.request.uri.path contains "/product" and http.request.method eq "POST")
С теми же характеристиками:
- IP
- Header value of >
x-api-key
- Идентификатор дата-центра (включено по умолчанию в панели управления, но не отображается)
Пример 3
Следующий правило rate limiting выполняет rate limiting запросов к нескольким путям URI на двух хостах, исключая известных ботов. Частота запросов определяется по IP-адресу и User-Agent значения.
Когда входящие запросы соответствуют:
(http.request.uri.path eq "/store" or http.request.uri.path eq "/prices") and (http.host eq "mystore1.com" or http.host eq "mystore2.com") and not cf.client.bot
С теми же характеристиками:
- IP
- Header value of >
user-agent
- Идентификатор дата-центра (включено по умолчанию в панели управления, но не отображается)
Пример 4
Следующий правило rate limiting выполняет rate limiting на основе сложности. Правило учитывает my-score, предоставляемый исходным сервером, для вычисления суммарной оценки сложности для клиента с переданным API-ключом.
Счётчик с суммарной оценкой обновляется при совпадении с выражение подсчёта (в данном случае оно совпадает с выражением правила, поскольку выражение подсчёта не было задано). Когда эта суммарная оценка становится больше 400 в течение одной минуты, все последующие запросы клиента будут блокироваться в течение 10 минут.
Когда входящие запросы соответствуют:
Если вы используете редактор выражений:
(http.request.uri.path wildcard "/graphql/*")
С теми же характеристиками:
- Header value of >
x-api-key
- Идентификатор дата-центра (включено по умолчанию в панели управления, но не отображается)
When rate exceeds: На основе сложности
- Оценка за период:
400
- Период: 1 минута
- Response header name:
my-score
Затем примите меры:
Со следующим поведением: Блокировать на выбранную длительность
Пример API с этой конфигурацией правила см. в Создание правила rate limiting через API.