创建例外以跳过特定规则或 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,请创建 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 中的一条或多条规则,请创建 skip 操作的规则,并在 action_parameters 对象中包含 rules 对象。rules 对象必须以一个或多个 managed ruleset ID 作为键,每个键的值为要在这些 managed rulesets 中跳过的规则列表。
跳过 managed ruleset 1 的规则 A 与 B,以及 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 规则,但会绕过该特定规则。