用户代理拦截允许您阻止特定的浏览器或 Web 应用 User-Agent 请求标头 ↗。用户代理规则适用于整个域名,而非单个子域名。
用户代理规则在 Zone 锁定规则 之后应用。若您通过 Zone 锁定允许了某个 IP 地址,该 IP 将跳过所有用户代理规则。
Cloudflare 用户代理拦截在所有套餐中均可用。但是,仅当您至少配置了一条用户代理规则时,此功能才在新安全仪表板中可用。
可用的用户代理规则数量取决于您的 Cloudflare 套餐。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | Yes | Yes | Yes | Yes |
Number of rules | 10 | 50 | 250 | 1,000 |
-
在 Cloudflare 仪表板中,前往 Security rules(安全规则) 页面。
Go to Security rules ↗ -
选择 Create rule(创建规则) > User agent rules(用户代理规则)。
-
在 Name/描述(名称/描述) 中输入规则的描述性名称。
-
在 Action(操作) 中,选择要执行的操作:Block(阻止)、Non-Interactive Challenge(非交互式质询)、Managed Challenge(托管质询) 或 Interactive Challenge(交互式质询)。
-
在 User Agent(用户代理) 中输入用户代理值(不支持
*等通配符)。例如,要阻止 Bad Bot Web 爬虫,请输入BadBot/1.0.2 (+http://bad.bot)。 -
选择 Save and Deploy blocking rule(保存并部署拦截规则)。
-
登录 Cloudflare 仪表板 ↗,并选择您的账户与域名。
-
前往 Security(安全性) > WAF,并选择 Tools(工具) 选项卡。
-
在 User Agent Blocking(用户代理拦截) 下,选择 Create blocking rule(创建拦截规则)。
-
在 Name/描述(名称/描述) 中输入规则的描述性名称。
-
在 Action(操作) 中,选择要执行的操作:Block(阻止)、Non-Interactive Challenge(非交互式质询)、Managed Challenge(托管质询) 或 Interactive Challenge(交互式质询)。
-
在 User Agent(用户代理) 中输入用户代理值(不支持
*等通配符)。例如,要阻止 Bad Bot Web 爬虫,请输入BadBot/1.0.2 (+http://bad.bot)。 -
选择 Save and Deploy blocking rule(保存并部署拦截规则)。
为 Create a User Agent Blocking rule 操作发出类似如下的 POST 请求:
Required API token permissions
At least one of the following token permissions is required:Firewall Services Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/firewall/ua_rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "Block Bad Bot web spider",
"mode": "block",
"configuration": {
"target": "ua",
"value": "BadBot/1.0.2 (+http://bad.bot)"
}
}'当用户代理拦截规则使用如 Managed Challenge(托管质询) 等质询操作时,访问者必须通过质询页面。通过质询后,将设置 cf_clearance cookie。该 cookie 的有效期由 Challenge Passage(质询通行) 设置控制。