INTEGRITY Dokumentace

Příklady pravidel rate limitingu

Níže uvedené příklady obsahují ukázkové konfigurace pravidel rate limitingu.

Příklad 1

Následující pravidlo rate limitingu provádí rate limiting příchozích požadavků z USA směřujících na přihlašovací stránku, s výjimkou jedné povolené IP adresy.

When incoming requests match:

Pole Operátor Hodnota
URI Path rovná se /login And
Country rovná se United States And
IP Source Address does not equal 192.0.0.1

Pokud používáte editor výrazů:
(http.request.uri.path eq "/login" and ip.src.country eq "US" and ip.src ne 192.0.0.1)

Se stejnými charakteristikami:

  • IP
  • ID datového centra (ve výchozím stavu zahrnuto v dashboardu, ale nezobrazeno)

Příklad 2

Následující pravidlo rate limitingu provádí rate limiting příchozích požadavků s danou základní cestou URI, přičemž čítač se zvyšuje podle IP adresy a poskytnutého API klíče.

When incoming requests match:

Pole Operátor Hodnota
URI Path contains /product And
Request Method rovná se POST

Pokud používáte editor výrazů:
(http.request.uri.path contains "/product" and http.request.method eq "POST")

Se stejnými charakteristikami:

  • IP
  • Hodnota hlavičky > x-api-key
  • ID datového centra (ve výchozím stavu zahrnuto v dashboardu, ale nezobrazeno)

Příklad 3

Následující pravidlo rate limitingu provádí rate limiting požadavků cílících na více cest URI na dvou hostitelích, s vyloučením známých botů. Frekvence požadavků vychází z IP adresy a User-Agent hodnoty.

When incoming requests match:

(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

Se stejnými charakteristikami:

  • IP
  • Hodnota hlavičky > user-agent
  • ID datového centra (ve výchozím stavu zahrnuto v dashboardu, ale nezobrazeno)

Příklad 4

Následující pravidlo rate limitingu provádí rate limiting založený na komplexitě. Pravidlo bere v úvahu my-score HTTP hlavičky odpovědi poskytnuté origin serverem k výpočtu celkového skóre složitosti pro klienta s daným API klíčem.

Čítač s celkovým skóre se aktualizuje, když u pravidla rate limitingu dojde ke shodě s výraz pro počítání (v tomto případě stejný jako výraz pravidla, protože počítací výraz nebyl zadán). Jakmile toto celkové skóre překročí hodnotu 400 během jedné minuty, budou všechny další požadavky klienta blokovány po dobu 10 minut.

When incoming requests match:

Pole Operátor Hodnota
URI Path wildcard /graphql/*

Pokud používáte editor výrazů:
(http.request.uri.path wildcard "/graphql/*")

Se stejnými charakteristikami:

  • Hodnota hlavičky > x-api-key
  • ID datového centra (ve výchozím stavu zahrnuto v dashboardu, ale nezobrazeno)

When rate exceeds: Založeno na složitosti

  • Skóre za období: 400
  • Období: 1 minuta
  • Název hlavičky odpovědi: my-score

Poté podnikněte kroky:

  • Choose action: Block

With the following behavior: Blokovat po zvolenou dobu

  • Doba trvání: 10 minut

Příklad API s touto konfigurací pravidla najdete v Vytvoření pravidla rate limitingu přes API.