INTEGRITY Dokumentace

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:

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.

  1. 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_managed fáze.

    Získání vstupní sady pravidel zóny
    curl "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.

  2. Vyvolejte Vytvoření pravidla v sadě pravidel zóny operace (POST pož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 v position objekt.

    Vytvoření pravidla v sadě pravidel zóny
    curl "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.

  1. 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_managed fáze.

    Získání vstupní sady pravidel zóny
    curl "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 execute pravidlo s action_parameters > id rovno (ID spravované sady pravidel).

    Uložte si následující ID pro další krok:

    • ID entry point rulesetu (060013b1eeb14c93b0dcd896537e0d2c v tomto příkladu)
    • ID execute pravidla nasazujícího spravovanou sadu pravidel (1bdb49371c1f46958fc8b985efcb79e7 v tomto příkladu)
  2. Vyvolejte Vytvoření pravidla v sadě pravidel zóny operace (POST požadavku) k přidání výjimky (neboli pravidla skip) bezprostředně před execute pravidlem 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 v position objekt.

    Vytvoření pravidla v sadě pravidel zóny
    curl "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.

  1. 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óny
    curl "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).

  2. 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_managed fáze.

    Získání vstupní sady pravidel zóny
    curl "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 execute pravidlo s action_parameters > id rovno (ID spravované sady pravidel).

    Uložte si následující ID pro další krok:

    • ID entry point rulesetu (060013b1eeb14c93b0dcd896537e0d2c v tomto příkladu)
    • ID execute pravidlo nasazující Cloudflare Managed Ruleset (1bdb49371c1f46958fc8b985efcb79e7 v 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)
  3. Vyvolejte Vytvoření pravidla v sadě pravidel zóny operace (POST požadavku) k přidání výjimky (neboli pravidla skip) bezprostředně před execute pravidlem 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óny
    curl "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.