跳转到内容
搜索文档

仅启用 Joomla 规则

最后更新 查看 MarkdownAgent 设置

使用 Rulesets API 配置托管规则集的执行并覆盖其行为。默认情况下,启用的规则执行托管规则集发布者定义的操作。本示例使用覆盖确保仅启用具有特定标记(tag)的规则。

按照以下步骤配置托管规则集的执行,其中包含两个覆盖,用于仅启用标记为 joomla 的规则。

  1. 添加规则到一个执行托管规则集的阶段入口点规则集(phase entry point ruleset)。
  2. 配置规则集覆盖,禁用托管规则集中的所有规则。
  3. 配置一个标记(tag)覆盖,仅启用具有给定标记的规则。

标记覆盖优先于规则集覆盖。仅启用具有指定标记的规则,所有其他规则均被禁用。

示例 1

本示例将 Cloudflare 托管规则集部署到一个阶段,仅启用 Joomla 规则。请求中省略了 namekindphase 字段,因为它们是不可变的(immutable)。

示例:在区域(zone)级别使用类别覆盖仅启用 Joomla 规则

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "execute",
						"expression": "true",
						"action_parameters": {
								"id": "<MANAGED_RULESET_ID>",
								"overrides": {
										"enabled": false,
										"categories": [
												{
														"category": "joomla",
														"action": "block",
														"enabled": true
												}
										]
								}
						}
				}
		]
	}'
  • "id": "<MANAGED_RULESET_ID>" 向一个阶段的规则集中添加一条规则,该规则将 Cloudflare 托管规则集应用于指定区域($ZONE_ID)的请求。
  • "enabled": false 在规则集级别定义了一个覆盖,用于禁用托管规则集中的所有规则。
  • "categories": [{"category": "joomla", "action": "block", "enabled": true}] 在标记级别定义了一个覆盖,用于启用 Joomla 规则并将其操作设置为 block

示例:在账户(account)级别使用类别覆盖仅启用 Joomla 规则

Required API token permissions

At least one of the following token permissions is required:
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • Transform Rules Write
  • Select Configuration Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
Update an account entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "execute",
						"expression": "cf.zone.name eq \"example.com\" and cf.zone.plan eq \"ENT\"",
						"action_parameters": {
								"id": "<MANAGED_RULESET_ID>",
								"overrides": {
										"enabled": false,
										"categories": [
												{
														"category": "joomla",
														"action": "block",
														"enabled": true
												}
										]
								}
						}
				}
		]
	}'
  • "id": "<MANAGED_RULESET_ID>" 向一个阶段的规则集中添加一条规则,该规则将 Cloudflare 托管规则集应用于针对 example.com 的请求。
  • "enabled": false 在规则集级别定义了一个覆盖,用于禁用托管规则集中的所有规则。
  • "categories": [{"category": "joomla", "action": "block", "enabled": true}] 在标记级别定义了一个覆盖,用于启用 Joomla 规则并将其操作设置为 block

您可以向一条规则添加多个类别覆盖。

示例 2

本示例向在 http_request_firewall_managed 阶段执行托管规则集 (<MANAGED_RULESET_ID>) 的规则添加两个覆盖。请注意,请求中省略了 namekindphase 字段,因为它们是不可变的。

示例:在区域级别添加多个类别覆盖

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "execute",
						"expression": "true",
						"action_parameters": {
								"id": "<MANAGED_RULESET_ID>",
								"overrides": {
										"enabled": false,
										"categories": [
												{
														"category": "joomla",
														"action": "log",
														"enabled": true
												},
												{
														"category": "wordpress",
														"enabled": false
												}
										]
								}
						}
				}
		]
	}'

示例:在账户级别添加多个类别覆盖

Required API token permissions

At least one of the following token permissions is required:
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • Transform Rules Write
  • Select Configuration Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
Update an account entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "execute",
						"expression": "cf.zone.name eq \"example.com\" and cf.zone.plan eq \"ENT\"",
						"action_parameters": {
								"id": "<MANAGED_RULESET_ID>",
								"overrides": {
										"enabled": false,
										"categories": [
												{
														"category": "joomla",
														"action": "log",
														"enabled": true
												},
												{
														"category": "wordpress",
														"enabled": false
												}
										]
								}
						}
				}
		]
	}'

规则集中覆盖的顺序决定了部署的托管规则集中的规则是启用还是禁用。列表中靠后的覆盖优先于靠前的覆盖。

考虑上述代码中托管规则集里的四条规则,它们具有不同的 category 标记组合。下表显示了应用覆盖后的规则状态。

托管规则集中的规则 标记 覆盖后的规则状态
ManagedRule1 drupal, dos 已禁用
ManagedRule2 drupal, dos, joomla 已启用
ManagedRule3 dos, joomla, wordpress 已禁用
ManagedRule4 drupal, wordpress 已禁用
ManagedRule5 (无标记) 已禁用

这篇文档对您有帮助吗?