INTEGRITY Документация

Примеры правил rate limiting

Примеры ниже включают образцы конфигураций правил rate limiting.

Пример 1

Следующий правило rate limiting выполняет rate limiting входящих запросов из США, адресованных странице входа, за исключением одного разрешённого IP-адреса.

Когда входящие запросы соответствуют:

Поле Оператор Значение
URI Path равно /login And
Country равно United States And
IP Source Address не равно 192.0.0.1

Если вы используете редактор выражений:
(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-ключу.

Когда входящие запросы соответствуют:

Поле Оператор Значение
URI Path contains /product And
Request Method равно POST

Если вы используете редактор выражений:
(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 минут.

Когда входящие запросы соответствуют:

Поле Оператор Значение
URI Path подстановочный знак /graphql/*

Если вы используете редактор выражений:
(http.request.uri.path wildcard "/graphql/*")

С теми же характеристиками:

  • Header value of > x-api-key
  • Идентификатор дата-центра (включено по умолчанию в панели управления, но не отображается)

When rate exceeds: На основе сложности

  • Оценка за период: 400
  • Период: 1 минута
  • Response header name: my-score

Затем примите меры:

  • Choose action: Block

Со следующим поведением: Блокировать на выбранную длительность

  • Длительность: 10 минут

Пример API с этой конфигурацией правила см. в Создание правила rate limiting через API.