← Dokumentace WAF / custom-rules
Vytvoření vlastního pravidla přes API
Použijte Rulesets API k vytvoření vlastního pravidla přes API na úrovni zóny.
Vlastní pravidla musíte nasadit do http_request_firewall_custom entry point ruleset fáze.
Pokud používáte Terraform, viz Konfigurace vlastních pravidel WAF pomocí Terraformu.
Vytvoření vlastního pravidla
Pro vytvoření vlastního pravidla pro zónu přidejte pravidlo do http_request_firewall_custom vstupní sada pravidel fáze.
-
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání definice entry point rulesetu pro fázi
http_request_firewall_customfázi. Budete potřebovat ID zóny pro tuto úlohu. -
Pokud entry point ruleset již existuje (tedy pokud jste obdrželi
200 OKstavový kód a definici sady pravidel), poznamenejte si ID sady pravidel z odpovědi. Poté zavolejte Vytvoření pravidla v sadě pravidel zóny operaci k přidání vlastního pravidla do existující sady pravidel. Podrobnosti najdete v příkladech níže. -
Pokud entry point ruleset neexistuje (tedy pokud jste obdrželi
404 Not Foundstavový kód v kroku 1), vytvořte jej pomocí Vytvoření sady pravidel zóny operace. Zahrňte své vlastní pravidlo do polerulespole. Viz Create ruleset pro příklad.
Příklad A
Tento ukázkový požadavek přidává pravidlo do http_request_firewall_custom (entry point ruleset fáze) pro zónu s ID $ZONE_ID. Vstupní sada pravidel (entry point ruleset) již existuje a má ID $RULESET_ID.
Nové pravidlo, které bude posledním pravidlem v sadě, předloží challenge požadavkům ze Spojeného království nebo Francie s skóre útoku nižší než 20.
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "My custom rule",
"expression": "(ip.src.country eq \"GB\" or ip.src.country eq \"FR\") and cf.waf.score lt 20",
"action": "challenge"
}'Pro definici konkrétní pozice nového pravidla zahrňte position objekt v těle požadavku podle pokynů v Změna pořadí pravidla v sadě pravidel.
Pokyny k vytvoření vstupní sady pravidel a definici jejích pravidel jediným API voláním najdete v Přidání pravidel do vstupních sad pravidel fází.
Příklad B
Tento ukázkový požadavek přidává pravidlo do http_request_firewall_custom (entry point ruleset fáze) pro zónu s ID $ZONE_ID. Vstupní sada pravidel (entry point ruleset) již existuje a má ID $RULESET_ID.
Nové pravidlo, které bude posledním pravidlem v sadě, obsahuje definici vlastní odpověď pro blokované požadavky.
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "My custom rule with plain text response",
"expression": "(ip.src.country eq \"GB\" or ip.src.country eq \"FR\") and cf.waf.score lt 20",
"action": "block",
"action_parameters": {
"response": {
"status_code": 403,
"content": "Your request was blocked.",
"content_type": "text/plain"
}
}
}'Pro definici konkrétní pozice nového pravidla zahrňte position objekt v těle požadavku podle pokynů v Změna pořadí pravidla v sadě pravidel.
Pokyny k vytvoření vstupní sady pravidel a definici jejích pravidel jediným API voláním najdete v Přidání pravidel do vstupních sad pravidel fází.
Další kroky
Použijte jednotlivé operace v Rulesets API pro práci s pravidlem, které jste právě vytvořili. Následující tabulka obsahuje seznam běžných úloh:
| Úloha | Postup |
|---|---|
| Výpis všech pravidel v rulesetu | Použijte Získání vstupní sady pravidel zóny operaci s Další informace viz Zobrazení konkrétní sady pravidel. |
| Aktualizace pravidla | Použijte Aktualizace pravidla v rulesetu zóny operace. Budete muset zadat ID sady pravidel a ID pravidla. K získání těchto ID můžete použít Získání vstupní sady pravidel zóny operaci s Další informace viz Aktualizace pravidla v sadě pravidel. |
| Smazání pravidla | Použijte Odstranění pravidla ze sady pravidel zóny operace. Budete muset zadat ID sady pravidel a ID pravidla. K získání těchto ID můžete použít Získání vstupní sady pravidel zóny operaci s Další informace viz Smazání pravidla v sadě pravidel. |
Tyto operace jsou popsány v dokumentaci Ruleset Engine. Ruleset Engine pohání různé produkty Cloudflare, včetně vlastních pravidel.
Další zdroje
Pokyny k nasazení vlastních pravidel na úrovni účtu přes API najdete v části Vytvoření vlastní sady pravidel pomocí API.