← Dokumentace WAF / managed-rules / waf-exceptions
Přidat výjimku přes API
Chcete-li přidat výjimku pro spravovaná pravidla pomocí API, vytvořte pravidlo s skip akce v vstupní sada pravidel fáze http_request_firewall_managed fáze. Výjimky můžete definovat na úrovni účtu i na úrovni zóny. Výjimky se také nazývají pravidla přeskočení.
Chcete-li nakonfigurovat výjimku, definujte action_parameters objekt podle typu výjimky. Podívejte se na následující příklady:
- Přeskočit všechna zbývající pravidla
- Přeskočit Cloudflare Managed Ruleset
- Přeskočit jedno 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 k Ruleset Engine.
Příklady
Přeskočit všechna zbývající pravidla
Následující příklad přidá pravidlo, které přeskočí všechna zbývající pravidla ve vstupní sadě pravidel u požadavků odpovídajících dev.example.com název hostitele.
-
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání aktuální konfigurace vstupní sady pravidel
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 vstupní sady pravidel (
060013b1eeb14c93b0dcd896537e0d2c) pro další krok. -
Vyvolejte Vytvoření pravidla sady pravidel zóny operaci (a
POSTpožadavek), přidáte výjimku (neboli pravidlo přeskočení) na začátek seznamu pravidel, protože pravidlo přeskočení platí pouze pro pravidla uvedená za ním. Přesné umístění pravidla je definováno vpositionobjekt.Vytvoření pravidla sady 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 najdete v Vytvoření výjimky v dokumentaci k Ruleset Engine.
Přeskočit Cloudflare Managed Ruleset
Následující příklad přidá pravidlo, které přeskočí Cloudflare Managed Ruleset pro požadavky odpovídající dev.example.com název hostitele.
-
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání aktuální konfigurace vstupní sady pravidel
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": [] }Najděte pravidlo, které nasazuje Cloudflare Managed Ruleset, vyhledáním
executepravidlo saction_parameters>idrovné(ID spravované sady pravidel). Uložte si následující ID pro další krok:
- ID vstupní sady pravidel (
060013b1eeb14c93b0dcd896537e0d2cv tomto příkladu) - ID
executenasazení pravidla pro spravovanou sadu pravidel (1bdb49371c1f46958fc8b985efcb79e7v tomto příkladu)
- ID vstupní sady pravidel (
-
Vyvolejte Vytvoření pravidla sady pravidel zóny operaci (a
POSTpožadavek), přidáte výjimku (neboli pravidlo přeskočení) přímo předexecutepravidlo nasazující Cloudflare Managed Ruleset, protože pravidlo přeskočení se vztahuje pouze na pravidla uvedená za ním. Přesné umístění pravidla je definováno vpositionobjekt.Vytvoření pravidla sady 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 najdete v Vytvoření výjimky v dokumentaci k Ruleset Engine.
Přeskočit jedno nebo více pravidel spravovaných sad pravidel WAF
Následující příklad přidá pravidlo, které přeskočí konkrétní pravidlo z Cloudflare Managed Ruleset pro požadavky odpovídající dev.example.com název hostitele.
-
Vyvolejte Získání sady pravidel zóny operaci k získání seznamu pravidel v Cloudflare Managed Ruleset (ID sady pravidel
).
Podrobnosti o spravované sadě pravidel můžete získat pomocí endpointu na úrovni účtu (Získání sady pravidel účtu) nebo koncový bod 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
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": [] }Najděte pravidlo, které nasazuje Cloudflare Managed Ruleset, vyhledáním
executepravidlo saction_parameters>idrovné(ID spravované sady pravidel). Uložte si následující ID pro další krok:
- ID vstupní sady pravidel (
060013b1eeb14c93b0dcd896537e0d2cv tomto příkladu) - ID
executepravidlo nasazující Cloudflare Managed Ruleset (1bdb49371c1f46958fc8b985efcb79e7v tomto příkladu)
Budete také potřebovat následující ID:
- ID Cloudflare Managed Ruleset (
) - ID pravidla, které se má přeskočit (
v tomto příkladu)
- ID vstupní sady pravidel (
-
Vyvolejte Vytvoření pravidla sady pravidel zóny operaci (a
POSTpožadavek), přidáte výjimku (neboli pravidlo přeskočení) přímo předexecutepravidlo nasazující Cloudflare Managed Ruleset, protože pravidlo přeskočení se vztahuje pouze na pravidla uvedená za ním.Vytvoření pravidla sady 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" } }'
action_parameters > rules objekt obsahuje ID Cloudflare Managed Ruleset spolu se 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 v sadě pravidel vstupního bodu (před pravidlem 1bdb49371c1f46958fc8b985efcb79e7).
Další informace o přeskočení jednoho nebo více pravidel spravovaných sad pravidel přes API najdete v Vytvoření výjimky v dokumentaci k Ruleset Engine.