INTEGRITY Dokumentace

Objevte a zabezpečte své API endpointy (Free, Pro a Business)

Jakmile je vaše API v produkčním provozu a přijímá požadavky, musíte rozhodnout, které koncové body chránit jako první, jaká omezení použít a jak sledovat zneužívání, aniž byste blokovali legitimní klienty. Tento průvodce vás provede pěti fázemi tohoto procesu: zmapováním koncových bodů, vynucením šifrovaných připojení, omezením přístupu na očekávané vzorce provozu, blokováním automatizovaného zneužívání a sledováním výsledků.

Základní postup využívá Cloudflare Application Security (známé také jako Web Application Firewall neboli WAF) funkce, SSL/TLS nastavení a detekce botů, všechny dostupné v plánech Free, Pro a Business. Poznámky pro Enterprise se týkají API Shield možnosti pro týmy, které potřebují validaci schémat, ověřování JSON Web Token (JWT) a analýzu sekvencí.

Vězte, co vystavujete

Před konfigurací jakýchkoli bezpečnostních pravidel si vytvořte přehled svých API koncových bodů. Bez úplného seznamu nemůžete cílit ochranu na správné cesty ani odhalit, kdy neznámý koncový bod začne přijímat provoz.

Proveďte ruční audit celého rozsahu svého API

  1. Zkontrolujte konfiguraci směrování své aplikace a sepište všechny koncové body spolu s jejich metodou HTTP a očekávanými parametry.

  2. Roztřiďte jednotlivé endpointy podle úrovně přístupu (veřejné, autentizované, interní). Přednostně se zaměřte na endpointy, které přijímají nahrávané soubory, zpracovávají platby nebo vracejí citlivá data.

    Úroveň přístupu Popis Ukázkové endpointy
    Veřejný Není vyžadováno ověření /api/status, /api/products
    Ověřeno Vyžadujte token nebo relaci /api/account, /api/orders
    Interní Nemělo by být veřejně dostupné /api/admin, /api/debug
  3. Zaznamenejte si přehled do tabulky nebo souboru se schématem OpenAPI, abyste na něj mohli odkazovat při psaní výrazů pravidel v dalších částech. Pokud už máte specifikaci OpenAPI, můžete ji přímo použít s validací schémat v API Shield (viz poznámka pro Enterprise níže).

Vynucujte HTTPS pro veškerý provoz API

API požadavky přenášejí přihlašovací údaje, tokeny a data odpovědí, které mohou útočníci zachytit na nezašifrovaném spojení. Někteří API klienti tiše přejdou na HTTP, pokud to server umožní, a citlivá data tak odešlou v čitelné podobě. Vynucení HTTPS na edge tomu zabraňuje.

Nastavte režim šifrování SSL/TLS

Nastavte režim šifrování na Full (Strict) k šifrování provozu mezi návštěvníky a Cloudflare a mezi Cloudflare a vaším origin serverem. Tento režim vyžaduje platný certifikát na vašem originu.

  1. V dashboardu Cloudflare přejděte na kartu SSL/TLS Přehled stránce.

    Přejděte na Přehled ↗
  2. Pro šifrování SSL/TLS, vyberte Full (Strict).

Další informace o režimech šifrování a jejich požadavcích najdete v režimy šifrování SSL/TLS.

Zapněte Always Use HTTPS

Always Use HTTPS přesměrovává všechny požadavky HTTP na HTTPS pro každou subdoménu a hostitele ve vaší aplikaci. Díky tomu klienti nemohou omylem odesílat požadavky API přes nešifrované připojení.

  1. V dashboardu Cloudflare přejděte na kartu SSL/TLS Přehled stránce.

    Přejděte na Přehled ↗
  2. Ověřte, že váš režim šifrování SSL/TLS není nastaveno na Vypnuto. Pokud je šifrování vypnuté, možnost Always Use HTTPS není zobrazena.

  3. Přejděte na Edge Certificates stránce.

    Přejděte na Edge Certificates ↗
  4. Zapněte Always Use HTTPS.

Nastavte minimální verzi TLS na 1.2

Protože rozhraní API mohou obsahovat citlivé informace, jako jsou přihlašovací údaje a tokeny, zvolte s ohledem na to vhodnou minimální verzi TLS.

TLS 1.0 a 1.1 mají známé zranitelnosti. Nastavením minima na TLS 1.2 odmítnete připojení klientů používajících starší protokoly.

  1. V dashboardu Cloudflare přejděte na Edge Certificates stránce.

    Přejděte na Edge Certificates ↗
  2. Pro Minimum TLS Version, vyberte TLS 1.2.

Další informace najdete v tématu Minimum TLS Version.

Vypněte Automatic HTTPS Rewrites pro domény určené pouze pro API

Automatic HTTPS Rewrites mění HTTP odkazy na HTTPS v HTML odpovědích. U koncových bodů API, které vracejí JSON nebo jiný obsah mimo HTML, je toto přepisování zbytečné a může způsobit neočekávané chování, pokud klienti API sledují přepsané URL adresy. Pokud vaše doména obsluhuje pouze provoz API, tuto funkci vypněte.

  1. V dashboardu Cloudflare přejděte na Edge Certificates stránce.

    Přejděte na Edge Certificates ↗
  2. Vypnout Automatic HTTPS Rewrites.

Omezte přístup ke koncovým bodům svého API

Legitimní API klienti odesílají předvídatelné vzory požadavků: konkrétní HTTP metody, očekávané hlavičky jako Content-Type: application/json, a požadavků na zdokumentované cesty. Application Security vlastní pravidla vám umožňují blokovat provoz, který se od těchto vzorů odchyluje. Rate limiting rules omezují objem požadavků na klienta, aby zabránily zneužití.

Blokování požadavků bez očekávaných hlaviček

API klienti obvykle uvádějí Content-Type hlavičku a může obsahovat Authorization hlavičku nebo vlastní hlavičku s klíčem API. Požadavky na cesty vašeho API, kterým tyto hlavičky chybí, nepocházejí od očekávaných klientů.

Následující vlastní bezpečnostní pravidlo blokuje požadavky na /api/ cestách, kterým chybí Content-Type hlavičku. Kontroly cesty a hlavičky upravte tak, aby odpovídaly vašemu API.

  1. V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.

    Přejděte na Bezpečnostní pravidla ↗
  2. Vyberte Vytvořit pravidlo > Custom rules.

  3. Zadejte název pravidla. Například Block API requests missing Content-Type.

  4. Do editoru výrazů zadejte:

    (starts_with(http.request.uri.path, "/api/") and not len(http.request.headers["content-type"][0]) > 0)
  5. Pro Vyberte akci, vyberte Block.

  6. Vyberte Nasadit.

Omezte metody HTTP pro jednotlivé koncové body

Pokud váš /api/users koncový bod přijímá pouze GET a POST požadavky a zablokujte všechny ostatní metody HTTP na dané cestě. Tím zabráníte útočníkům v testování pomocí PUT, DELETE, nebo PATCH požadavků proti koncovým bodům, které je nepodporují.

  1. V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.

    Přejděte na Bezpečnostní pravidla ↗
  2. Vyberte Vytvořit pravidlo > Custom rules.

  3. Zadejte název pravidla. Například Block unexpected methods on /api/users.

  4. Do editoru výrazů zadejte:

    (http.request.uri.path eq "/api/users" and http.request.method ne "GET" and http.request.method ne "POST")

    Upravte cestu a povolené metody tak, aby odpovídaly vašemu koncovému bodu.

  5. Pro Vyberte akci, vyberte Block.

  6. Vyberte Nasadit.

Tento postup zopakujte pro každý koncový bod s omezenými metodami. Více cest můžete zkombinovat do jediného pravidla pomocí or operátory pokud mají stejné povolené metody.

Omezte četnost požadavků na koncové body API

API koncové body čelí cílenějšímu zneužívání než webové stránky, protože útočníci je mohou volat rychlostí stroje bez nutnosti renderovat prohlížeč. Rate limiting omezuje počet požadavků, které může jeden klient odeslat během daného časového okna.

Vytvořte samostatná pravidla pro omezování četnosti požadavků pro autentizované a neautentizované koncové body. Neautentizované koncové body (přihlášení, registrace, obnovení hesla) potřebují přísnější limity, protože jsou hlavním cílem pro credential stuffing a útoky hrubou silou.

Následující příklad omezuje požadavky na /api/auth/login na 10 za minutu na IP adresu. Upravte cestu, prahovou hodnotu požadavků a období podle vašich koncových bodů.

  1. V dashboardu Cloudflare přejděte na Bezpečnostní pravidla stránce.

    Přejděte na Bezpečnostní pravidla ↗
  2. Vyberte Vytvořit pravidlo > Rate limiting rules.

  3. Zadejte popisný název. Například Rate limit login endpoint.

  4. V Pole rozbalovací nabídce vyberte URI Path. Nastavte Operátor na equals a Hodnota na /api/auth/login.

  5. V části Se stejnými charakteristikami, přidejte IP.

  6. V části Když frekvence překročí, nastavte Požadavky na 10 a Období na 1 minuta.

  7. V části Poté proveďte akci, vyberte Block.

  8. Nastavte Doba trvání (mitigation timeout) do 1 minuta.

  9. Vyberte Nasadit.

Další informace o parametrech omezení rychlosti a počítaných charakteristikách najdete v Parametry omezení frekvence požadavků.

Příklad specifický pro API, který jako počítanou charakteristiku používá klíč API, najdete v Příklady pravidel Rate limiting.

Ochrana před automatizovaným zneužíváním API

Boti volají endpointy API rychlostí stroje a bez zátěže prohlížeče. Mezi běžné automatizované útoky na API patří credential stuffing na autentizační endpointy, scraping dat přes výpisové endpointy a manipulace se skladovými zásobami přes endpointy košíku nebo pokladny.

Zapněte Bot Fight Mode (Free)

Bot Fight Mode vystavuje výzvě požadavky, které odpovídají známým vzorcům botů. Vztahuje se na celou vaši doménu a je dostupný ve všech plánech bez příplatku.

  1. V dashboardu Cloudflare přejděte na Security Settings stránce.

    Přejděte na Nastavení ↗
  2. Filtrovat podle Provoz botů.

  3. Přejděte na Bot fight mode.

  4. Zapněte Bot fight mode zapnuto.

Bot Fight Mode může narušit legitimní automatizovaný provoz směřující na vaše API, například monitorovací nástroje, pipeline CI/CD nebo integrace partnerů. Pokud máte legitimní botové klienty, vytvořte pravidlo výjimky ještě předtím, než Bot Fight Mode zapnete (viz další část).

Další informace o chování a omezeních Bot Fight Mode najdete v Bot Fight Mode.

Vytvoření výjimek pro legitimní boty (Pro, Business)

Pokud vaše API přijímá provoz od známých automatizovaných klientů (monitorovacích služeb, partnerských API, systémů CI/CD), vytvořte vlastní bezpečnostní pravidlo s Přeskočit akce a vyloučete je z ochrany proti botům. Vytvořte výjimkové pravidlo ještě před zapnutím Super Bot Fight Mode v následující části.

  1. V Cloudflare dashboardu přejděte na Security > Bezpečnostní pravidla.

    Přejděte na Bezpečnostní pravidla ↗
  2. Vyberte Vytvořit pravidlo > Custom rules.

  3. Zadejte název pravidla. Například Skip bot protections for monitoring service.

  4. Sestavte výraz, který bude odpovídat vašemu známému provozu botů. Pokud chcete například přeskočit ochrany u požadavků z konkrétního rozsahu IP adres se známým User-Agentem:

    (ip.src in {203.0.113.0/24} and http.user_agent contains "MonitoringBot")

    Nahraďte rozsah IP adres a User-Agent hodnotami odpovídajícími vašim legitimním botům.

  5. Pro Vyberte akci, vyberte Přeskočit a poté vyberte Všechna pravidla Super Bot Fight Mode.

  6. Vyberte Nasadit.

Konfigurace Super Bot Fight Mode (Pro, Business)

Super Bot Fight Mode poskytuje podrobné ovládací prvky platné pro celou doménu a umožňuje vám uplatňovat různé akce na různé typy botů.

Chcete-li nakonfigurovat Super Bot Fight Mode:

  1. V dashboardu Cloudflare přejděte na Security Settings stránce.

    Přejděte na Nastavení ↗
  2. Filtrovat podle Provoz botů.

  3. Přejděte na Super Bot fight mode.

  4. Zapněte Super Bot fight mode zapnuto.

  5. Zvolte, jak má vaše doména reagovat na různé typy provozu, výběrem příslušné ikony úprav:

S Super Bot Fight Mode můžete pro různé typy botů nastavit různé akce:

Super Bot Fight Mode platí pro celou doménu a nepodporuje pravidla specifická pro jednotlivé cesty. Pokud potřebujete použít různé prahové hodnoty pro boty na různých cestách API, potřebujete Bot Management předplatné (Enterprise).

Odhalte uniklé přihlašovací údaje na přihlašovacích endpointech

Application Security detekce uniklých přihlašovacích údajů kontroluje příchozí požadavky, zda neobsahují kombinace uživatelského jména a hesla, které se objevily při známých únicích dat. Pomocí této detekce můžete na svých ověřovacích koncových bodech omezovat rychlost nebo prověřovat požadavky obsahující kompromitované přihlašovací údaje.

Následující pravidlo rate limitingu omezuje požadavky obsahující dříve uniklou kombinaci uživatelského jména a hesla na 5 za minutu na jednu IP adresu:

Nastavení Hodnota
Výraz cf.waf.credential_check.username_and_password_leaked
Charakteristiky pro počítání IP
Požadavky za období 5 požadavků / 1 minuta
Akce Block

Úplný výraz včetně ID detekce zneužití účtu (ATO) najdete v Příklad pravidel zmírnění.

Sledování provozu API

Po nasazení bezpečnostních pravidel zkontrolujte výsledky, abyste identifikovali falešně pozitivní výsledky a doladili prahové hodnoty. Úpravy vyžadují jak falešně pozitivní výsledky (blokování legitimních klientů), tak falešně negativní výsledky (zneužití, které pravidla nezachytí).

Zkontrolujte Security Events pro cesty API

Security Events zobrazuje každý požadavek, kterému odpovídalo některé z vašich pravidel, včetně provedené akce a pravidla, které ji spustilo. Filtrujte podle prefixu cesty API a zjistěte, co Cloudflare blokuje a proč.

  1. V dashboardu Cloudflare přejděte na Analytics stránce.

    Přejděte na Analytics ↗
  2. Vyberte Události kartě.

  3. Přidejte filtr pro URI Path začíná na /api/.

  4. Zkontrolujte události. Vyhledejte legitimní klienty, kteří jsou blokováni (falešně pozitivní výsledky). Časté indikátory falešně pozitivních výsledků:

    • Požadavky ze známých IP adres partnerů
    • Požadavky s platnými klíči API nebo autorizačními hlavičkami
    • Požadavky od monitorovacích služeb se známými řetězci User-Agent

Pokud narazíte na falešně pozitivní výsledky, upravte vlastní pravidla tak, aby postižený provoz vylučovala. Více informací najdete v postup pro pravidlo výjimky v předchozí části.

Dolaďte prahové hodnoty rate limitingu

Příliš přísné prahové hodnoty pro omezování četnosti požadavků blokují legitimní klienty. Příliš volné prahové hodnoty umožňují zneužití. Zkontrolujte události omezování četnosti požadavků v Security Events a najděte správnou rovnováhu.

  1. V dashboardu Cloudflare přejděte na Analytics stránce.

    Přejděte na Analytics ↗
  2. Vyberte Události kartě.

  3. Filtrovat podle Akce se rovná Block a Služba se rovná Omezení četnosti požadavků.

  4. Zkontrolujte, zda blokované požadavky pocházejí od legitimních klientů, nebo jde o zneužívající provoz.

  5. Pokud je legitimním klientům omezován provoz pomocí rate limitingu, upravte příslušné pravidlo rate limitingu tak, abyste zvýšili práh počtu požadavků nebo prodloužili časové období daného pravidla.

  6. Pokud škodlivý provoz stále proniká, snižte práh pravidla nebo zkraťte časové období.

Nastavte upozornění na nárůsty bezpečnostních událostí

Cloudflare Notifications vás může upozornit, když objem bezpečnostních událostí překročí zadanou hranici, což může signalizovat útok nebo špatně nastavené pravidlo.

  1. V dashboardu Cloudflare přejděte na Oznámení stránce.

    Přejděte na Oznámení ↗
  2. Vyberte Přidat.

  3. Filtrovat podle WAF a vyberte Upozornění Security Events.

  4. Zadejte název oznámení a metodu doručení (e-mail, webhook nebo PagerDuty).

  5. Dále nakonfigurujte domény, pro které chcete dostávat oznámení. Události můžete také filtrovat podle konkrétní akce (například Block nebo Přeskočit).

  6. Vyberte Vytvořit.

Úplný seznam dostupných typů oznámení najdete v Dostupná oznámení.

Zabezpečení aplikace

Boti

SSL/TLS

API Shield (Enterprise)