← Dokumentace WAF / reference / legacy
Rate Limiting (předchozí verze)
Cloudflare Rate Limiting automaticky rozpoznává a zmírňuje nadměrnou frekvenci požadavků pro konkrétní adresy URL nebo pro celou doménu.
Frekvence požadavků se počítá lokálně pro jednotlivá datacentra Cloudflare. Mezi nejběžnější způsoby použití funkce Rate Limiting patří:
- Chránit před Útoky DDoS ↗
- Chránit před Útok hrubou silou ↗
- Omezte přístup k vyhledávání ve fóru, volání API nebo zdrojům, které na vašem origin serveru vyžadují náročné databázové operace
Jakmile jednotlivá adresa IPv4 nebo IPv6 /64 rozsah IP adres překročí prahovou hodnotu pravidla, další požadavky na origin server se blokují s HTTP 429 stavový kód odpovědi. Odpověď obsahuje Retry-After hlavičku, která uvádí, kdy může klient obnovit odesílání požadavků.
Omezení frekvence požadavků a SEO
Prostředky uložené v mezipaměti a známí prohledávače vyhledávačů jsou vyňaty z vašich pravidel omezení frekvence požadavků (pouze v předchozí verzi). Proto neovlivňují Hodnocení SEO.
Dostupnost
Počet povolených pravidel omezení frekvence požadavků závisí na plánu domény:
| Plán | Pravidla | Pravidla porovnávající hlavičky odpovědi | Akce | Doba trvání akce | Request Period |
|---|---|---|---|---|---|
| Free | 1 | 1 | Block | 1 minuta nebo 1 hodina | 10 sekund nebo 1 minuta |
| Pro | 10 | 1 | Block, Non-Interactive Challenge, Managed Challenge, Interactive Challenge nebo Log | 1 minuta nebo 1 hodina | 10 sekund nebo 1 minuta |
| Business | 15 | 10 | Block, Non-Interactive Challenge, Managed Challenge, Interactive Challenge nebo Log | 1 minuta, 1 hodina nebo 24 hodin | 10 sekund, 1 minuta nebo 10 minut |
| Enterprise | 100 | 10 | Block, Non-Interactive Challenge, Managed Challenge, Interactive Challenge nebo Log | Jakákoli doba trvání zadaná mezi 10 sekundami a 86,400 sekundami (24 hodin) | Jakákoli hodnota zadaná mezi 10 sekundami a 3,600 sekundami (1 hodina) |
Cloudflare Rate Limiting podporuje více úrovní řízení konfigurace v závislosti na plánu Cloudflare dané domény. Tabulka níže ukazuje, co můžete dělat podle svého plánu:
| Pořadí | Úkol | Dostupné v |
|---|---|---|
| 1 | Konfigurace základního pravidla omezení frekvence požadavků | Všechny plány |
| 2 | Konfigurace Advanced Criteria | Plány Business a Enterprise |
| 3 | Konfigurace Advanced Response | Plány Business a Enterprise |
| 4 | Konfigurace možnosti Bypass | plán Enterprise |
Součásti pravidla omezení frekvence požadavků
Pravidlo omezení rychlosti se skládá ze tří samostatných částí:
Kritéria shody požadavku
Příchozí požadavky se porovnávají podle cesty požadavku, schématu požadavku, metody požadavku a volitelně podle kódu odpovědi origin serveru.
Request path
Například:
http://example.com/examplehttp://example.com/example/*
Cesta požadavku nerozlišuje velká a malá písmena. Vzory nemohou odpovídat obsahu za řetězci dotazu (?) nebo kotvy (#). Hvězdička (*) odpovídá libovolné posloupnosti znaků, včetně prázdné posloupnosti. Například:
*.example.com/*odpovídá jakékoli cestě na jakékoli subdoméněexample.com.*example.com/example.htmlodpovídáexample.htmlnaexample.comnebo jakoukoli subdoménuexample.com.*odpovídá jakékoli stránce na vašem webu.
Požadavek na example.com/path není totéž jako example.com/path/. Jedinou výjimkou z tohoto pravidla je domovská stránka: example.com odpovídá example.com/.
Schéma požadavku
HTTP nebo HTTPS. Pokud není zadáno žádné, shodují se obě a pravidlo uvede __ALL__.
Metoda požadavku
POST nebo GET. Pokud není zadaná žádná metoda, shodují se všechny a pravidlo uvede __ALL__.
(Volitelné) Kód odpovědi origin serveru
Pravidlo rate limitingu můžete například nastavit tak, aby se shodovalo pouze v případě, že origin server vrátí HTTP 401 nebo 403 stavový kód. Spuštěné pravidlo odpovídající kritériím kódu odpovědi blokuje následné požadavky od tohoto klienta bez ohledu na kód odpovědi z původu.
Kritéria pro shodu frekvence
Pravidlo může vytvořit shodu na základě počtu a časového období všech požadavků přicházejících od stejného klienta.
Počet požadavků
Zadejte alespoň dva požadavky. Pokud chcete blokovat už jediný požadavek, znepřístupněte danou cestu, například nastavte svůj origin server tak, aby vracel HTTP 403 stavový kód.
Období požadavku
Pravidlo se spustí, jakmile požadavky klienta překročí prahovou hodnotu po zadanou dobu trvání.
Zmírnění pravidla
Zmírnění pravidla se skládá z akce zmírnění a doby trvání blokování.
Akce zmírnění
Akce omezení frekvence požadavků vychází z plánu domény, jak je uvedeno v Dostupnost:
- Block: Cloudflare vydá
HTTP 429chybu při překročení prahové hodnoty. - Non-Interactive Challenge: Návštěvník musí projít neinteraktivní výzvou Cloudflare. Pokud ji úspěšně absolvuje, Cloudflare požadavek povolí.
- Managed Challenge: Návštěvník musí projít výzvou, kterou Cloudflare dynamicky vybere na základě vlastností požadavku. Pokud ji úspěšně absolvuje, Cloudflare požadavek povolí.
- Interactive Challenge: Návštěvník musí projít Interactive Challenge. Pokud ji úspěšně absolvuje, Cloudflare požadavek povolí.
- Log: Požadavky se zaznamenávají do Cloudflare Logs. To usnadňuje testování pravidel před jejich nasazením do produkčního prostředí.
Další informace o akcích typu Challenge najdete v Challenges.
Doba trvání blokování
Pokud nastavíte časový limit kratší, než je prahová hodnota, API tento časový limit automaticky zvýší tak, aby se prahové hodnotě rovnal.
Návštěvníci, kteří narazí na rate limit, obdrží výchozí stránku HTML, pokud není nastavena vlastní chybová stránka není zadáno. Zákazníci s plánem Business a Enterprise navíc mohou zadat odpověď přímo v pravidle. Více informací najdete v Konfigurace Advanced Response s podrobnostmi.
Identifikace prahových hodnot omezení frekvence požadavků
Chcete-li určit obecnou prahovou hodnotu pro Cloudflare Rate Limiting, vydělte počet požadavků na web bez mezipaměti za 24 hodin počtem jedinečných návštěvníků za stejných 24 hodin. Výsledek poté vydělte odhadovaným průměrným počtem minut jedné návštěvy. Nakonec jej vynásobte 4 (nebo vyšším číslem), abyste získali odhadovanou prahovou hodnotu za minutu pro svůj web. Hodnota vyšší než 4 je v pořádku, protože většina útoků řádově převyšuje běžnou úroveň provozu.
Chcete-li určit limity četnosti požadavků pro konkrétní URL adresy, vycházejte z 24 hodin požadavků bez mezipaměti a jedinečných návštěvníků pro danou URL adresu. Prahové hodnoty upravte na základě zpětné vazby od uživatelů a vlastního monitorování.
Úkol 1: Konfigurace základního pravidla omezení frekvence požadavků
Následující části popisují dva běžné typy pravidel omezení frekvence požadavků.
Zapnutí funkce Protect your login
Rate Limiting nabízí upgrade jedním kliknutím Chránit přihlášení nástroj, který vytvoří pravidlo blokující klienta na 15 minut, pokud odešle více než 5 požadavků POST během 5 minut. To postačuje k zablokování většiny pokusů o prolomení hrubou silou.
- Přihlaste se do Cloudflare dashboard ↗, a vyberte svůj účet a doménu.
- Přejděte na Security > WAF > Rate limiting rules.
- V části Rate Limiting, vyberte Chránit přihlášení.
- Zadejte Název pravidla a Zadejte adresu URL přihlášení v Chránit přihlášení dialogového okna, které se zobrazí.
- Vyberte Save.
- Název pravidla se zobrazí ve vašem Rate Limiting seznam pravidel.
Vytvoření vlastního pravidla omezení frekvence požadavků
-
Přihlaste se do Cloudflare dashboard ↗, a vyberte svůj účet a doménu.
-
Přejděte na Security > WAF > Rate limiting rules.
-
Vyberte Vytvoření pravidla omezení frekvence požadavků. Otevře se dialogové okno, ve kterém zadáte podrobnosti nového pravidla.
-
Zadejte popisný název pravidla do Název pravidla.
-
Pro Pokud provoz odpovídá URL adrese, vyberte schéma HTTP z rozevírací nabídky a zadejte URL adresu.
-
V ze stejné IP adresy překročí, zadejte celé číslo větší než 1 představující počet požadavků ve vzorkovacím období.
-
Pro požadavků za, vyberte vzorkovací období (období, během kterého se počítají požadavky). U domén s plánem Enterprise lze ručně zadat libovolnou dobu trvání od 10 do 3 600 sekund (jedna hodina).
-
Pro Poté, vyberte jednu z dostupných akcí podle svého plánu. Projděte si Zmírnění pravidla část, kde najdete podrobnosti.
-
Pokud jste vybrali Block nebo Log, pro odpovídající provoz od daného návštěvníka po dobu, vyberte, jak dlouho se má daná možnost uplatňovat po dosažení prahové hodnoty. U domén s plánem Enterprise lze zadat libovolnou hodnotu od 10 do 86 400 sekund (24 hodin).
-
Chcete-li aktivovat nové pravidlo, vyberte Save and Deploy.
Nové pravidlo se zobrazí v seznamu pravidel omezení frekvence požadavků.
Obecně platí, že při nastavení nižší prahové hodnoty:
- Ponechte stávající pravidla beze změny a přidejte nové pravidlo s nižší prahovou hodnotou.
- Jakmile je nové pravidlo zavedeno, počkejte, až uplyne doba trvání akce starého pravidla, a teprve poté staré pravidlo smažte.
Pokud nastavujete vyšší prahovou hodnotu (kvůli blokování legitimních klientů), zvyšte ji přímo ve stávajícím pravidle.
Úkol 2: Konfigurace Advanced Criteria (pouze plány Business a Enterprise)
Advanced Criteria možnost určuje, které metody HTTP, hlavičky odpovědí a stavové kódy origin serveru se mají shodovat pro vaše pravidlo rate limiting.
Chcete-li nakonfigurovat pokročilá kritéria pro nové nebo existující pravidlo:
-
Rozbalit Advanced Criteria.
-
Vyberte hodnotu z Metoda(y). Výchozí hodnota je ANY, který odpovídá všem metodám HTTP.
-
Filtrovat podle HTTP hlavička(y) odpovědi. Vyberte Přidat pole hlavičky odpovědi k zahrnutí hlaviček vrácených vaším origin webovým serverem.
CF-Cache-Statushlavička se ve výchozím nastavení zobrazuje, aby Cloudflare namísto omezování frekvence u těchto prostředků poskytoval prostředky z mezipaměti. Chcete-li omezovat frekvenci i u prostředků z mezipaměti, odeberte tuto hlavičku výběrem X nebo povolte Použít limit frekvence požadavků i na aktiva v mezipaměti.Pokud máte více než jednu hlavičku v HTTP hlavička(y) odpovědi, AND se uplatňuje booleovská logika. Chcete-li vyloučit hlavičku, použijte Not Equals možnost. U každé hlavičky se nerozlišují velká a malá písmena.
-
V části Kód(y) odpovědi origin serveru, zadejte číselnou hodnotu každého kódu odpovědi HTTP, který se má porovnávat. Více kódů HTTP oddělte čárkou (například:
401, 403). -
(Volitelné) Nakonfigurujte další funkce omezení frekvence požadavků podle svého plánu.
-
Vyberte Save and Deploy.
Úkol 3: Konfigurace Advanced Response (pouze plány Business a Enterprise)
Advanced Response možnost určuje formát informací, které Cloudflare vrátí při překročení prahové hodnoty pravidla. Použijte Advanced Response pokud chcete vracet statický prostý text nebo obsah JSON.
Chcete-li nakonfigurovat odpověď ve formátu prostého textu nebo JSON:
-
Rozbalit Advanced Response.
-
Vyberte Typ odpovědi formát jiný než výchozí: Vlastní JSON nebo Vlastní TEXT.
-
Zadejte odpověď ve formátu prostého textu nebo JSON, kterou chcete vracet. Maximální velikost odpovědi je 32 KB.
-
(Volitelné) Nakonfigurujte další funkce omezení frekvence požadavků podle svého plánu.
-
Vyberte Save and Deploy.
Použití vlastní HTML stránky nebo přesměrování
Pokud chcete zobrazit vlastní stránku HTML, nakonfigurujte vlastní stránku pro HTTP 429 chyby (Too many requests) na Dashboardu. Cloudflare zobrazí tuto stránku, když vyberete Default Cloudflare Rate Limiting Page v Typ odpovědi (výchozí hodnota pole).
K přesměrování klienta, na kterého se vztahuje omezení frekvence požadavků, na konkrétní URL můžete použít následující metodu:
-
Na svém serveru vytvořte stránku HTML, která přesměruje na konečnou URL adresu stránky, kterou chcete zobrazit. Zahrňte do ní meta
refresh↗ tag v obsahu stránky, jako v následujícím příkladu:<!doctype html> <html> <head> <meta charset="utf-8" /> <title>Custom RL page</title> <meta http-equiv="refresh" content="0; url='https://yourzonename/block'" /> </head> <body></body> </html>Poznamenejte si veřejnou URL adresu vytvořené stránky.
-
V dashboardu Cloudflare přejděte na Nastavení stránce.
Přejděte na Konfigurace ↗ -
Přejděte na Chybové stránky.
-
Vedle Blok omezení četnosti požadavků, vyberte tři tečky > Úprava.
-
Vyberte Vlastní stránka.
-
V Adresa vlastní stránky, zadejte URL stránky, kterou jste vytvořili na svém serveru, tedy stránky obsahující meta
refresh. -
Vyberte Save.
Stejný postup použijte i v případě, že chcete vrátit obsah ve formátu prostého textu nebo JSON, ale odpověď je větší než 32 KB. V takovém případě bude přesměrovací adresa URL odkazovat na zdroj s textovým nebo JSON obsahem, který chcete zobrazit.
Úkol 4: Konfigurace možnosti Bypass (pouze plán Enterprise)
Bypass vytváří allowlist nebo výjimku, takže se na konkrétní sadu URL adres neuplatní žádné akce, i když je limit rychlosti dosažen.
Chcete-li nakonfigurovat Bypass:
-
Rozbalit Bypass.
-
V Pravidlo pro obejití u těchto adres URL, zadejte URL adresy, které chcete z pravidla omezení frekvence požadavků vyjmout. Každou URL adresu zadejte na samostatný řádek. Protokol HTTP nebo HTTPS uvedený v URL adrese se při uložení pravidla automaticky odstraní a pravidlo se poté vztahuje na oba protokoly, HTTP i HTTPS.
-
(Volitelné) Nakonfigurujte další funkce omezení frekvence požadavků podle svého plánu.
-
Vyberte Save and Deploy.
Analytics
Zobrazte si analytiku rate limitingu pro vaši zónu v Analytics & logs > Security. Analytika Rate Limiting znázorňuje plnými čarami provoz odpovídající simulovaným požadavkům a tečkovanými čarami skutečně blokované požadavky. Protokoly generované pravidlem omezení frekvence požadavků jsou dostupné pouze zákazníkům s plánem Enterprise, a to přes Cloudflare Logs.
Cloudflare vrátí HTTP 429 chybu pro blokované požadavky. Podrobnosti o blokovaných požadavcích podle lokality jsou zákazníkům Enterprise poskytovány v Stavové kódy na řídicím panelu analytiky dostupném na adrese Analytics > Provoz.
Pořadí vykonávání pravidel
Pravidla omezení frekvence požadavků se vyhodnocují od nejnověji vytvořeného pravidla po nejstarší.
Pokud například požadavek odpovídá následujícím dvěma pravidlům:
- Pravidlo č. 1: Shoda s
test.example.com(vytvořeno 2024-03-01) - Pravidlo č. 2: Shoda s
*.example.com*(vytvořeno 2024-03-12)
Pak se jako první spustí pravidlo #2, protože bylo vytvořeno jako poslední.
Pokud navíc dojde ke shodě a WAF použije Log akce pokračuje ve vyhodnocování dalších rate limiting rules, protože Log je neukončující akce. Pokud WAF použije jakoukoli jinou akci, žádná další pravidla se již nevyhodnocují.
Omezení
Rate Limiting je navržen tak, aby omezoval nárazy provozu překračující rychlost definovanou uživatelem. Systém není navržen tak, aby k origin serveru propouštěl přesný počet požadavků. Může se stát, že mezi zjištěním požadavku a aktualizací interního čítače dojde ke zpoždění. Kvůli tomuto zpoždění, které může trvat až několik sekund, se k origin serveru mohou dostat i požadavky nad rámec limitu, než se uplatní akce jako blokování nebo vyzvání k ověření.