← Dokumentace WAF / managed-rules / waf-exceptions
Přidání výjimky přes API
K přidání výjimky spravovaných pravidel pomocí API vytvořte pravidlo s skip akce v entry point ruleset fáze http_request_firewall_managed fáze. Výjimky můžete definovat na úrovni účtu i na úrovni zóny. Výjimkám se také říká skip pravidla.
Pro konfiguraci výjimky definujte action_parameters objekt podle typu výjimky. Viz následující příklady:
- Skip all remaining rules
- Přeskočení Cloudflare Managed Ruleset
- Přeskočení jednoho nebo více pravidel spravovaných sad pravidel WAF
Další informace o vytváření výjimek pomocí API najdete v Vytvoření výjimky v dokumentaci Ruleset Engine.
Příklady
Skip all remaining rules
Následující příklad přidává pravidlo, které přeskakuje všechna zbývající pravidla v entry point rulesetu pro požadavky odpovídající dev.example.com hostname.
-
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání aktuální konfigurace vstupního rulesetu (entry point) pro
http_request_firewall_managedfáze.Získání vstupní sady pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID "name": "default", "description": "", "source": "firewall_managed", "kind": "zone", "version": "3", "rules": [ // (...) ], "last_updated": "2024-01-20T14:29:00.190643Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] }Uložte si ID entry point rulesetu (
060013b1eeb14c93b0dcd896537e0d2c) pro další krok. -
Vyvolejte Vytvoření pravidla v sadě pravidel zóny operace (
POSTpožadavek) k přidání výjimky (neboli skip pravidla) na začátek seznamu pravidel, protože skip pravidlo se vztahuje pouze na pravidla uvedená za ním. Přesné umístění pravidla je definováno vpositionobjekt.Vytvoření pravidla v sadě pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "expression": "(http.host eq \"dev.example.com\")", "description": "Skip managed rules for dev.example.com", "action": "skip", "action_parameters": { "ruleset": "current" }, "position": { "before": "" } }'
Další informace o přeskočení všech zbývajících pravidel přes API viz Vytvoření výjimky v dokumentaci Ruleset Engine.
Přeskočení Cloudflare Managed Ruleset
Následující příklad přidává pravidlo, které přeskočí Cloudflare Managed Ruleset pro požadavky odpovídající dev.example.com hostname.
-
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání aktuální konfigurace vstupního rulesetu (entry point) pro
http_request_firewall_managedfáze.Získání vstupní sady pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID "name": "default", "description": "", "source": "firewall_managed", "kind": "zone", "version": "3", "rules": [ // (...) { "id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule ID "version": "1", "action": "execute", "expression": "true", "last_updated": "2024-01-20T14:21:28.643979Z", "ref": "1bdb49371c1f46958fc8b985efcb79e7", "enabled": true, "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", // "Cloudflare Managed Ruleset" ID "version": "latest" } } // (...) ], "last_updated": "2024-01-20T14:29:00.190643Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] }Identifikujte pravidlo nasazující Cloudflare Managed Ruleset vyhledáním
executepravidlo saction_parameters>idrovno(ID spravované sady pravidel). Uložte si následující ID pro další krok:
- ID entry point rulesetu (
060013b1eeb14c93b0dcd896537e0d2cv tomto příkladu) - ID
executepravidla nasazujícího spravovanou sadu pravidel (1bdb49371c1f46958fc8b985efcb79e7v tomto příkladu)
- ID entry point rulesetu (
-
Vyvolejte Vytvoření pravidla v sadě pravidel zóny operace (
POSTpožadavku) k přidání výjimky (neboli pravidla skip) bezprostředně předexecutepravidlem nasazujícím Cloudflare Managed Ruleset, protože skip pravidlo se vztahuje pouze na pravidla uvedená za ním. Přesné umístění pravidla je definováno vpositionobjekt.Vytvoření pravidla v sadě pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "expression": "(http.host eq \"dev.example.com\")", "description": "Skip the Cloudflare Managed Ruleset for dev.example.com", "action": "skip", "action_parameters": { "rulesets": [ "efb7b8c949ac4650a09736fc376e9aee" ] }, "position": { "before": "1bdb49371c1f46958fc8b985efcb79e7" } }'
Další informace o přeskočení jedné nebo více spravovaných sad pravidel přes API viz Vytvoření výjimky v dokumentaci Ruleset Engine.
Přeskočení jednoho nebo více pravidel spravovaných sad pravidel WAF
Následující příklad přidává pravidlo, které přeskakuje konkrétní pravidlo Cloudflare Managed Ruleset pro požadavky odpovídající dev.example.com hostname.
-
Vyvolejte Získání sady pravidel zóny operaci k získání seznamu pravidel v Cloudflare Managed Ruleset (ID sady pravidel
).
Podrobnosti spravované sady pravidel můžete získat pomocí endpointu na úrovni účtu (Získání rulesetu účtu) nebo endpoint na úrovni zóny (Získání sady pravidel zóny).Získání sady pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/efb7b8c949ac4650a09736fc376e9aee" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "id": "efb7b8c949ac4650a09736fc376e9aee", "name": "Cloudflare Managed Ruleset", "description": "Created by the Cloudflare security team, this ruleset is designed to provide fast and effective protection for all your applications. It is frequently updated to cover new vulnerabilities and reduce false positives.", "source": "firewall_managed", "kind": "managed", "version": "180", "rules": [ // (...) { "id": "d9e350f1b72d4730899c8a420e48a85d", // ID of rule to skip "version": "180", "action": "block", "categories": ["file-inclusion", "october-cms"], "description": "October CMS - File Inclusion", "last_updated": "2024-02-05T07:12:54.565276Z", "ref": "adb550873eb92d32372ed08514d33241", "enabled": true } // (...) ], "last_updated": "2024-02-05T07:12:54.565276Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] }Poznamenejte si ID pravidla, které chcete přeskočit (
v tomto příkladu). -
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání aktuální konfigurace vstupní sada pravidel (entry point ruleset)
http_request_firewall_managedfáze.Získání vstupní sady pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID "name": "default", "description": "", "source": "firewall_managed", "kind": "zone", "version": "3", "rules": [ // (...) { "id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule ID "version": "1", "action": "execute", "expression": "true", "last_updated": "2024-01-20T14:21:28.643979Z", "ref": "1bdb49371c1f46958fc8b985efcb79e7", "enabled": true, "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", // "Cloudflare Managed Ruleset" ID "version": "latest" } } // (...) ], "last_updated": "2024-01-20T14:29:00.190643Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] }Identifikujte pravidlo nasazující Cloudflare Managed Ruleset vyhledáním
executepravidlo saction_parameters>idrovno(ID spravované sady pravidel). Uložte si následující ID pro další krok:
- ID entry point rulesetu (
060013b1eeb14c93b0dcd896537e0d2cv tomto příkladu) - ID
executepravidlo nasazující Cloudflare Managed Ruleset (1bdb49371c1f46958fc8b985efcb79e7v tomto příkladu)
Použijete také následující ID:
- ID Cloudflare Managed Ruleset (
) - ID pravidla, které se má přeskočit (
v tomto příkladu)
- ID entry point rulesetu (
-
Vyvolejte Vytvoření pravidla v sadě pravidel zóny operace (
POSTpožadavku) k přidání výjimky (neboli pravidla skip) bezprostředně předexecutepravidlem nasazujícím Cloudflare Managed Ruleset, protože skip pravidlo se vztahuje pouze na pravidla uvedená za ním.Vytvoření pravidla v sadě pravidel zónycurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "expression": "(http.host eq \"dev.example.com\")", "description": "Skip a single rule for dev.example.com", "action": "skip", "action_parameters": { "rules": { "efb7b8c949ac4650a09736fc376e9aee": [ "d9e350f1b72d4730899c8a420e48a85d" ] } }, "position": { "before": "1bdb49371c1f46958fc8b985efcb79e7" } }'
The action_parameters > rules objekt obsahuje ID sady Cloudflare Managed Ruleset s přiřazeným seznamem ID pravidel, která se mají přeskočit (v tomto případě jen jedno pravidlo). position objekt definuje přesné umístění pravidla ve vstupní sadě pravidel (před pravidlem 1bdb49371c1f46958fc8b985efcb79e7).
Další informace o přeskočení jednoho nebo více pravidel spravovaných sad přes API viz Vytvoření výjimky v dokumentaci Ruleset Engine.