← Případy užití / use-cases / solutions
Zastavte škodlivé boty a zachovejte legitimní provoz (Free, Pro a Business)
Správná obrana proti škodlivému provozu botů závisí na vzorech provozu na vašem webu a na vašem plánu. Tento návod popisuje vrstvený přístup využívající Cloudflare Bots, Cloudflare Application Security (známé také jako Web Application Firewall neboli WAF) a Turnstile, od základní ochrany až po cílená vlastní pravidla. Základní postup využívá funkce dostupné v plánech Free, Pro a Business, s poznámkami k možnostem pro Enterprise.
Zkontrolujte provoz botů
Než změníte jakákoli nastavení pro boty, projděte si data o svém provozu, abyste zjistili, co boti na vašem webu dělají.
Zjistěte si analytiku botů
Bot analytics vám ukazují, jak velká část vašeho provozu je automatizovaná, na které stránky boti míří a jak Cloudflare hodnotí každý požadavek.
-
V dashboardu Cloudflare přejděte na Analytics stránce.
Přejděte na Analytics ↗ -
Vyberte Analýza botů kartě.
Zkontrolujte následující:
- Graf rozložení skóre botů: Skóre blíže 1 značí automatizovaný provoz. Skóre blíže 99 značí provoz od lidí.
- Nejčastěji požadované cesty: Které koncové body přijímají nejvíce provozu od botů. Častými cíli jsou přihlašovací stránky, API koncové body a proces objednávky.
- Vzorce provozu: Náhlé nárůsty provozu s nízkým skóre, vysoký výskyt konkrétních user agentů nebo geografická koncentrace požadavků mohou signalizovat aktivitu botů, kterou stojí za to prověřit.
Seznamte se s kategoriemi botů
Cloudflare třídí provoz robotů do kategorií podle bot skóre a stavu ověření:
- Ověření roboti: Crawlery a služby, které Cloudflare potvrdil jako legitimní, například Googlebot, Bingbot nebo nástroje pro monitorování dostupnosti. Cloudflare udržuje seznam ověřených botů s přísnými požadavky.
- Automated (score 1): Cloudflare si je poměrně jistý, že jde o automatizovaný požadavek.
- Likely automated (scores 2-29): Pravděpodobně bot. Tato kategorie a kategorie Automated jsou hlavním cílem bezpečnostních pravidel, včetně scraperů, nástrojů pro credential stuffing a odesílatelů spamu.
- Pravděpodobně člověk (scores 30-99): Tyto požadavky pravděpodobně pocházejí od skutečných uživatelů. Tento provoz neprověřujte ani neblokujte.
Blokování automatizovaného provozu pomocí Bot Fight Mode
Bot Fight Mode identifikuje požadavky odpovídající známým vzorům robotů a vydává výpočetní výzvu. Snižuje tak automatizovaný provoz na celém vašem webu, aniž byste museli psát jakákoli pravidla.
Co dělá Bot Fight Mode
Bot Fight Mode je součástí plánu Free. Po zapnutí:
- Identifikuje provoz odpovídající vzorcům známých botů
- V reakci na tyto boty vydává výpočetně náročné výzvy
- Chrání celé domény bez omezení na jednotlivé koncové body
- Nelze přizpůsobit, upravit ani překonfigurovat pomocí vlastních pravidel
- Nelze obejít pomocí vlastní pravidlo Přeskočit akce. Pokud Bot Fight Mode prověří požadavek, který chcete povolit, můžete Bot Fight Mode vypnout nebo přejít na Super Bot Fight Mode pro podrobnější řízení.
Podrobnosti uvádí Na co si dát pozor u Bot Fight Mode.
Zapněte Bot Fight Mode (plán Free)
-
V dashboardu Cloudflare přejděte na Security Settings stránce.
Přejděte na Nastavení ↗ -
Filtrovat podle Provoz botů.
-
Přejděte na Bot fight mode.
-
Zapněte Bot fight mode zapnuto.
Povolte Super Bot Fight Mode (Pro, Business a Enterprise)
Super Bot Fight Mode přidává allowlisting ověřených botů, akce podle kategorií, ochranu statických zdrojů a detekce pomocí JavaScriptu.
-
V dashboardu Cloudflare přejděte na Security Settings stránce.
Přejděte na Nastavení ↗ -
Filtrovat podle Provoz botů.
-
Přejděte na Super Bot fight mode.
-
Zapněte Super Bot fight mode zapnuto.
-
Zvolte, jak má vaše doména reagovat na různé typy provozu, výběrem příslušné ikony úprav:
- Další podrobnosti o ověřených botech najdete v Verified Bots.
- Další podrobnosti o podporovaných typech souborů najdete v Static resource protection.
- Další podrobnosti o injektáži neviditelného kódu najdete v JavaScript detections.
- Další podrobnosti o optimalizaci pro WordPress najdete v Super Bot Fight Mode pro WordPress.
Chraňte formuláře před automatizovaným zneužitím
Turnstile a Application Security pravidla rate limitingu chrání koncové body formulářů různými způsoby a nejlépe fungují společně.
Turnstile oproti rate limitingu
Turnstile prověřuje podezřelé boty ještě předtím, než odešlou formulář (přihlášení, registraci, kontaktní formulář nebo pokladnu), aniž by návštěvníkům zobrazoval CAPTCHA. Lze jej vložit na libovolný web bez směrování provozu přes Cloudflare. Turnstile použijte, když potřebujete prověřovat automatizovaná odesílání formulářů.
Omezování četnosti požadavků umožňuje definovat limity четnosti pro požadavky odpovídající danému výrazu a akci, která se provede po dosažení těchto limitů. Použijte ho k ochraně koncových bodů před zneužitím, například před útoky hrubou silou na přihlašovací stránku nebo nadměrným počtem volání API z jednoho klienta.
Nejsilnější pokrytí zajistí kombinace obou. Turnstile vystavuje výzvě automatizovaná odeslání na úrovni formuláře. Rate limiting zachytává vysokoobjemové útoky, které formulář obcházejí nebo se s ním vůbec nesetkají, například přímé POST požadavků na koncový bod, které obcházejí widget na straně klienta.
Přidejte Turnstile do formuláře
Přidání Turnstile zahrnuje tři kroky: vytvoření widgetu, přidání úryvku kódu na straně klienta a ověření tokenu na serveru.
1. Vytvořte widget Turnstile
Turnstile se konfiguruje na úrovni účtu.
-
V dashboardu Cloudflare přejděte na Turnstile stránce.
Přejděte na Turnstile ↗ -
Vyberte Přidání widgetu.
-
Vyplňte požadované údaje:
- Název widgetu: Popisný název widgetu.
- Správa hostname: Domény, na kterých se bude widget používat.
- Režim widgetu: Vyberte z možností Managed, Non-Interactive nebo Invisible.
-
(Volitelné) Nastavte Podpora pre-clearance pro jednostránkové aplikace.
-
Vyberte Vytvořit a widget se uloží.
-
Zkopírujte si sitekey a secret key a secret key uložte na bezpečné místo.
V následujících krocích budete potřebovat sitekey i secret key.
2. Přidejte klientský fragment kódu
Přidejte skript a kontejner widgetu Turnstile do HTML svého formuláře:
<script
src="https://challenges.cloudflare.com/turnstile/v0/api.js"
async
defer
></script>
<form action="/submit" method="POST">
<!-- Your existing form fields -->
<div class="cf-turnstile" data-sitekey="<YOUR_SITE_KEY>"></div>
<button type="submit">Submit</button>
</form>Nahraďte <YOUR_SITE_KEY> se sitekey z předchozího kroku. Widget se vykreslí uvnitř prvku div a po úspěšném absolvování ověření vygeneruje token.
3. Ověřte token na svém serveru
Před zpracováním odeslaného formuláře odešlete token na endpoint Turnstile siteverify, abyste ověřili, že návštěvník prošel výzvou:
curl https://challenges.cloudflare.com/turnstile/v0/siteverify \
--header "Content-Type: application/json" \
--data '{
"secret": "<YOUR_SECRET_KEY>",
"response": "<TURNSTILE_RESPONSE_TOKEN>"
}'Nahraďte <YOUR_SECRET_KEY> s tajným klíčem a <TURNSTILE_RESPONSE_TOKEN> hodnotou cf-turnstile-response hodnotu z odeslaného formuláře. Endpoint vrátí objekt JSON s klíčem success pole. Odeslání formuláře zpracujte pouze v případě, že success je true.
Úplné podrobnosti integrace najdete v Začínáme s Turnstile.
Omezte objem požadavků na formulářové koncové body pomocí rate limitingu
Pro přihlašovací endpointy se v kombinaci s Turnstile osvědčuje stupňovitý přístup k omezení rychlosti. Následující příklad z Osvědčené postupy pro Rate limiting zobrazuje dvě pravidla, která stupňují reakci podle objemu neúspěšných pokusů. Upravte prahové hodnoty podle vzorců provozu vašeho webu.
Pravidlo krátkého okna: Challenge: IP adresu, která v krátkém časovém okně odešle příliš mnoho neúspěšných přihlašovacích požadavků.
-
V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Rate limiting rules.
-
Zadejte popisný název do pole Název pravidla.
-
V části Pokud příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
http.request.uri.path eq "/login" and http.request.method eq "POST" -
V části Se stejnými charakteristikami, vyberte IP.
-
Povolit Použití vlastního výrazu pro počítání a zadejte:
http.request.uri.path eq "/login" and http.request.method eq "POST" and http.response.code in {401 403} -
V části Když frekvence překročí, zadejte
4požadavků za1 minute. -
V části Poté proveďte akci, vyberte Managed Challenge.
-
Vyberte Nasadit.
Pravidlo s dlouhým časovým oknem: Block: IP adresu, u které se za delší období nahromadí neúspěšné pokusy o přihlášení.
-
V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Rate limiting rules.
-
Zadejte popisný název do pole Název pravidla.
-
V části Pokud příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
http.request.uri.path eq "/login" and http.request.method eq "POST" -
V části Se stejnými charakteristikami, vyberte IP.
-
Povolit Použití vlastního výrazu pro počítání a zadejte:
http.request.uri.path eq "/login" and http.request.method eq "POST" and http.response.code in {401 403} -
V části Když frekvence překročí, zadejte
20požadavků za1 hour. -
V části Poté proveďte akci, vyberte Block s dobou trvání
1 day. -
Vyberte Nasadit.
Tento vzor využívá počítací výraz, který počítá pouze POST požadavků, které vracejí kódy chyby ověření. Legitimní uživatelé, kterým se přihlášení podaří na první pokus, pravidlo nikdy nespustí. Výsledky zkontrolujte v Security Events a ověřte, že prahové hodnoty nezachycují legitimní uživatele.
Úplný stupňovaný příklad ochrany proti credential stuffing se třemi pravidly najdete v Osvědčené postupy pro Rate limiting.
Cílte na vzory chování botů pomocí vlastních pravidel a rate limitingu
Application Security vlastní pravidla a pravidla rate limitingu vám umožňují zacílit na konkrétní vzory provozu, které vestavěná ochrana proti robotům nezachytí. Cloudflare odděluje detekci (hodnocení provozu) od zmírňování (reakce na tato hodnocení). Pravidla, která napíšete, pak na základě detekčních signálů určují, jakou akci provést.
Blokování požadavků s chybějícími nebo podezřelými hlavičkami
Legitimní prohlížeče obvykle odesílají hlavičky jako User-Agent, Accept, a Accept-Language. Mnoho botů tyto hlavičky vynechává nebo odesílá hodnoty, které neodpovídají prohlížeči. Vlastní pravidlo cílené na požadavky s prázdnými nebo podezřelými hlavičkami zachytí boty, kteří unikají detekci založené na skóre.
Než vytvoříte vlastní pravidla, zkontrolujte vestavěná nastavení pro boty v Security > Nastavení (filtrováno podle Provoz botů). Tato nastavení řeší běžné scénáře, jako je blokování AI crawlerů, prověřování automatizovaného provozu a povolování ověřených botů, aniž byste museli psát výrazy. Úplný seznam vestavěných nastavení najdete v Vyzývání k ověření škodlivých botů.
Pokud vám vestavěná nastavení nestačí, vytvořte si vlastní pravidla. Nejprve vytvořte výjimku pro ověřené boty, aby byli chránění ještě před nasazením jakýchkoli blokovacích pravidel.
Přejděte na vlastní pravidla a vytvořte obě pravidla:
-
V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Custom rules.
Nejprve vytvořte výjimku pro ověřené boty:
- Zadejte popisný název do pole Název pravidla.
- V části Když příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
(cf.client.bot) - V části Poté proveďte akci, vyberte Přeskočit z Vyberte akci rozbalovací nabídce. Poté vyberte Všechna zbývající vlastní pravidla.
- V části Umístit na, vyberte První z Vybrat pořadí rozbalovací nabídce, aby se toto pravidlo spustilo před jakýmikoli blokujícími pravidly.
- Vyberte Nasadit.
Tím zajistíte, že ověření boti (vyhledávací roboty, monitorovací služby) obejdou vaše vlastní pravidla. Pokud máte interní API, integrace s partnery nebo monitorovací nástroje, které generují automatizovaný provoz, vytvořte pro jejich IP adresy nebo user-agenty další pravidla Skip ještě před nasazením blokovacích pravidel. Očekávaný automatizovaný provoz zkontrolujte v Security Events a zjistěte, co zařadit na seznam povolených.
Poté vytvořte blokovací pravidlo:
- Vyberte Vytvořit pravidlo.
- Zadejte popisný název do pole Název pravidla.
- V části Když příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
(http.request.uri.path eq "/login" and http.request.method eq "POST") - V části Poté proveďte akci, vyberte Managed Challenge z Vyberte akci rozevírací nabídce.
- V části Umístit na, nechte Vybrat pořadí rozbalovací nabídka nastavená na Poslední. Tím se pravidlo umístí za výjimku pro ověřené boty.
- Vyberte Nasadit.
- Zkontrolujte výsledky v Security Events. Pokud pravidlo odpovídá pouze provozu od botů, upravte pravidlo a změňte akci z Managed Challenge na Block.
Další možnosti vlastních pravidel včetně vizuálního tvůrce polí najdete v Vytvoření vlastního pravidla v dashboardu.
Pokud se provoz botů soustředí ze zemí, kde nemáte žádné skutečné uživatele, můžete výše uvedená pravidla zkombinovat s geografickými filtry. Přidejte ip.src.country do výrazu, čímž pravidlo omezíte na konkrétní regiony. Příklady najdete v Blokování provozu podle geografické lokality.
Chraňte často využívané cesty pomocí omezování četnosti požadavků
Boti se nezaměřují jen na endpointy formulářů, ale i na platební procesy, endpointy API a další citlivé cesty. Rate limiting rules omezují počet požadavků, které může jeden klient na tyto cesty odeslat během daného časového okna.
Následující příklad vytváří pravidlo rate limitingu pro koncový bod checkoutu. Upravte cestu, limit a akci podle potřeb svého webu.
-
V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Rate limiting rules.
-
Zadejte popisný název do pole Název pravidla.
-
V části Pokud příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
http.request.uri.path eq "/api/checkout" and http.request.method eq "POST" -
V části Se stejnými charakteristikami, vyberte IP.
-
V části Když frekvence překročí, zadejte
10požadavků za1 minute. -
V části Poté proveďte akci, vyberte Managed Challenge.
-
Vyberte Nasadit.
-
Zkontrolujte výsledky v Security Events. Pokud pravidlo odpovídá pouze provozu od botů, upravte pravidlo a změňte akci na Block v případě potřeby.
Další vzory a prahové hodnoty najdete v Osvědčené postupy pro Rate limiting.
Ověřte a dolaďte svá pravidla
Po nasazení pravidel na ochranu před boty použijte Security Events a ověřte, že fungují podle očekávání, a upravte prahové hodnoty na základě výsledků.
Kontrola Security Events
Security Events zobrazuje požadavky, na které bezpečnostní produkty Cloudflare zareagovaly nebo je označily, včetně blokování, výzev a označení.
-
V dashboardu Cloudflare přejděte na Analytics stránce.
Přejděte na Analytics ↗ -
Vyberte Události kartě.
Zkontrolujte Sampled logs a prohlédněte si jednotlivé požadavky. Každý záznam v protokolu zobrazuje provedenou akci, pravidlo, které ji spustilo, zdrojovou IP adresu, user agenta, cestu URI a zemi. Dostupné sekce dashboardu se liší podle plánu. Další informace najdete v Dostupnost Security Events pro funkce dostupné ve vašem plánu.
Hledejte falešně pozitivní výsledky (legitimní provoz, který vaše pravidla nesprávně vyzvala k ověření nebo zablokovala). Mezi běžné příznaky patří:
- Požadavky od známých monitorovacích služeb nebo poskytovatelů platebních služeb se objevují mezi blokovanými událostmi
- User-agenti odpovídající legitimním prohlížečům, kterým se přesto zobrazují výzvy
- Vysoký počet požadavků s akcí Challenge ze zemí, kde máte skutečné uživatele
U pravidel s akcí Managed Challenge zkontrolujte míra vyřešení challenge (CSR). Nízké CSR obvykle znamená, že pravidlo účinně filtruje automatizovaný provoz, nikoli legitimní uživatele.
Bot Fight Mode a Super Bot Fight Mode jsou záměrně nastaveny agresivně. Falešně pozitivní výsledky lze očekávat, zejména v prvních dnech po jejich zapnutí. Klíčový rozdíl mezi nimi spočívá v tom, jak řešíte výjimky:
- Bot Fight Mode (Free) nelze obejít pomocí akcí Skip ve vlastních pravidlech. Bot Fight Mode můžete vypnout, nebo pro větší kontrolu přejít na Super Bot Fight Mode.
- Super Bot Fight Mode (Pro a vyšší) lze obejít pomocí vlastních pravidel s akcí Skip, což vám dává větší volnost při vytváření výjimek.
Další informace o řešení falešně pozitivních výsledků najdete v Falešně pozitivní výsledky.
Upravte svá pravidla
Po kontrole Security Events upravte svá pravidla na základě výsledků.
Scénář 1: Vaše monitorovací nástroje nebo služby jsou blokovány.
V blokovaných událostech se objevují interní monitorovací nástroje, služby pro kontrolu stavu nebo partnerská API. Řešení závisí na tom, která funkce je blokuje:
-
Pokud Super Bot Fight Mode (Pro a vyšší) blokuje provoz, vytvořte vlastní pravidlo s akcí Skip, které odpovídá IP adrese nebo user agentu nástroje:
-
Přejděte na Bezpečnostní pravidla stránce.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Custom rules.
-
Zadejte popisný název.
-
V části Když příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
(ip.src eq 192.0.2.1)(nahraďte IP adresou svého nástroje). -
V části Poté proveďte akci, vyberte Přeskočit. Poté vyberte Všechna pravidla Super Bot Fight Mode.
-
Vyberte Nasadit.
-
-
Pokud Bot Fight Mode (Free) blokuje provoz, vypněte Bot Fight Mode nebo přejděte na Super Bot Fight Mode pro podrobná pravidla výjimek.
Podrobnosti o konfiguraci akce Skip najdete v Konfigurace pravidla s akcí Přeskočit.
Scénář 2: Škodlivý provoz stále proniká.
Aktivita botů, kterou vaše aktuální pravidla nezachytí, se objevuje v Security Events. Boti, kteří zůstávají pod limity četnosti požadavků nebo obcházejí pravidla založená na jediném signálu, vyžadují kombinaci více signálů. Pokud chcete například vystavit výzvě POST požadavky na /login které nepocházejí od ověřených botů:
-
V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.
Přejděte na Bezpečnostní pravidla ↗ -
Vyberte Vytvořit pravidlo > Custom rules.
-
Zadejte popisný název.
-
V části Když příchozí požadavky odpovídají, vyberte Edit expression a zadejte:
(http.request.uri.path eq "/login" and http.request.method eq "POST" and not cf.client.bot) -
V části Poté proveďte akci, vyberte Managed Challenge.
-
Vyberte Nasadit.
-
Zkontrolujte výsledky v Security Events. Pokud pravidlo odpovídá pouze provozu botů, změňte akci na Block.
Další pole výrazů a příklady najdete v Případy použití Custom rules.
Pokud boti zůstávají pod prahovými hodnotami vašeho rate limitingu, upravte pravidlo rate limitingu a snižte počet požadavků nebo zkraťte časové okno.
Související zdroje
Boti
- Bot Fight Mode : Základní ochrana proti botům dostupná ve všech plánech
- Super Bot Fight Mode : Podrobné ovládání botů pro plány Pro, Business a Enterprise
- Enterprise Bot Management : Hodnocení botů založené na strojovém učení a behaviorální analýza
- Bot Analytics : Sledování vzorů provozu botů napříč doménou
Zabezpečení aplikace
- Custom rules : Psaní cílených pravidel pomocí signálů provozu a bot score
- Rate limiting rules : Kontrola objemu požadavků na ochranu endpointů před zneužitím
- Security Events : Kontrola a prošetření zmírněných požadavků
Turnstile
- Turnstile : Bezplatná výzva respektující soukromí pro formuláře a interakce uživatelů