← Dokumentace WAF / rate-limiting-rules
Příklady pravidel Rate limiting
Níže uvedené příklady obsahují ukázkové konfigurace pravidla omezení frekvence požadavků.
Příklad 1
Následující pravidlo pro omezení frekvence provádí rate limiting u příchozích požadavků z USA směřujících na přihlašovací stránku, s výjimkou jedné povolené IP adresy.
Když příchozí požadavky odpovídají:
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 (v dashboardu zahrnuto ve výchozím nastavení, ale nezobrazeno)
Příklad 2
Následující pravidlo pro omezení frekvence provádí rate limiting u příchozích požadavků s danou základní cestou URI, přičemž počítadlo se zvyšuje podle IP adresy a zadaného klíče API.
Když příchozí požadavky odpovídají:
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 (v dashboardu zahrnuto ve výchozím nastavení, ale nezobrazeno)
Příklad 3
Následující pravidlo pro omezení frekvence provádí rate limiting u požadavků směřujících na více cest URI na dvou hostitelích, s vyloučením known botů. Frekvence požadavků vychází z IP adresy a User-Agent hodnoty.
Když příchozí požadavky odpovídají:
(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 (v dashboardu zahrnuto ve výchozím nastavení, ale nezobrazeno)
Příklad 4
Následující pravidlo pro omezení frekvence provádí rate limiting založený na složitosti. Pravidlo přitom zohledňuje my-score HTTP hlavičku odpovědi poskytnutou origin serverem a na jejím základě vypočítá celkové skóre složitosti klienta s daným klíčem API.
Čítač s celkovým skóre se aktualizuje při shodě s výraz pro počítání (v tomto případě stejné jako výraz pravidla, protože nebyl zadán výraz pro počítání). Jakmile toto celkové skóre překročí 400 během jedné minuty, jakékoli další požadavky klienta budou zablokovány po dobu 10 minut.
Když příchozí požadavky odpovídají:
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 (v dashboardu zahrnuto ve výchozím nastavení, ale nezobrazeno)
Když frekvence překročí: Na základě složitosti
- Skóre za období:
400
- Období: 1 minuta
- Název hlavičky odpovědi:
my-score
Poté proveďte akci:
S následujícím chováním: Blokovat po vybranou dobu
Příklad API s touto konfigurací pravidla najdete v Vytvoření pravidla omezení frekvence požadavků přes API.