跳转到内容
搜索文档

创建例外

最后更新 查看 MarkdownAgent 设置

创建例外以跳过特定规则或 rulesets。 使用 exceptions 跳过 managed ruleset 的执行或其部分规则。

例外配置包括定义跳过条件的表达式,以及在这些条件下要跳过的规则或 managed rulesets。

若你使用 Terraform,请参阅 Terraform 文档中的 Configure exceptions

若你使用 Cloudflare 仪表板,请参阅 Add an exception in the dashboard

例外类型

例外可具有以下行为之一(按优先级从高到低):

你在给定上下文(zone 级别或账户级别)中定义例外,且它们仅应用于该上下文。例如,若你在账户级别定义跳过所有剩余规则的例外,zone 级别入口点 ruleset 中定义的规则仍会被评估。

若多条例外的表达式均匹配,Cloudflare 将考虑优先级最高的例外。

例外仅应用于列在它们之后的、执行 managed ruleset 的规则。若你在入口点 ruleset 的规则列表末尾添加例外,则不会跳过任何内容。

跳过所有剩余规则

要跳过入口点 ruleset 中的所有剩余规则,请创建 skip 操作的规则,并在 action_parameters 对象中包含 "ruleset": "current"

规则定义示例:

{
	"expression": "<RULE_EXPRESSION>",
	"action": "skip",
	"action_parameters": {
		"ruleset": "current"
	}
}

跳过所有剩余规则仅影响当前上下文(账户或 zone)中的规则。例如,向账户级阶段入口点 ruleset 添加 skip 操作的规则不会影响 zone 级阶段入口点 ruleset 中定义的规则——这些 zone 级规则仍会被评估。

完整示例请参阅 WAF 文档

跳过一个或多个 managed rulesets

要跳过一个或多个 managed rulesets,请创建 skip 操作的规则,并在 action_parameters 对象中包含 rulesets 字段。rulesets 字段必须包含你要跳过的 managed ruleset ID 列表。

规则定义示例:

{
	"expression": "<RULE_EXPRESSION>",
	"action": "skip",
	"action_parameters": {
		"rulesets": ["<MANAGED_RULESET_1_ID>", "<MANAGED_RULESET_2_ID>"]
	}
}

完整示例请参阅 WAF 文档

跳过 managed rulesets 中的一条或多条规则

要跳过 managed rulesets 中的一条或多条规则,请创建 skip 操作的规则,并在 action_parameters 对象中包含 rules 对象。rules 对象必须以一个或多个 managed ruleset ID 作为键,每个键的值为要在这些 managed rulesets 中跳过的规则列表。

跳过 managed ruleset 1 的规则 AB,以及 managed ruleset 2 的规则 X 的规则定义示例:

{
	"expression": "<RULE_EXPRESSION>",
	"action": "skip",
	"action_parameters": {
		"rules": {
			"<MANAGED_RULESET_1_ID>": ["<RULE_A_ID>", "<RULE_B_ID>"],
			"<MANAGED_RULESET_2_ID>": ["<RULE_X_ID>"]
		}
	}
}

rules 对象中的规则必须属于指定的 managed rulesets,否则你会收到错误。

完整示例请参阅 WAF 文档


补充说明

  • 例外优先于 overrides
  • 若你定义跳过所有剩余规则的例外,则不会评估这些规则的表达式。
  • 若你定义跳过 managed ruleset 中某条规则的例外,会评估执行该 managed ruleset 的规则的表达式,并执行 managed ruleset 规则,但会绕过该特定规则。

这篇文档对您有帮助吗?