区域级 Web 应用程序防火墙 (WAF) 会检测并缓解此区域下所有流量的恶意请求。使用自定义规则保护您的网站和 API 免受恶意流量的侵害。配置缓解标准和操作以提高安全性。
注意事项:
WAF 规则需要开启代理 DNS 记录才能使您的页面规则生效。
WAF 规则不适用于 DNS记录中不存在或未定向到 Cloudflare 的主机名。
WAF规则设置摘要
1、ANS:(ip.geoip.asnum):表示16位或32位整数,表示与客户端 IP 地址关联的自治系统 (AS) 编号。
2、Cookie(http.cookie):将整个 cookie 表示为字符串。
示例值:
session=8521F670545D7865F79C3D7BEDC29CCE;-background=light
3、国家/地区(ip.geoip.country):表示 ISO 3166-1 Alpha 2 格式的 2 个字母的国家/地区代码。
示例值:
GB
4、洲(ip.geoip.continent):表示与客户端 IP 地址关联的大陆代码:
AF——非洲
AN——南极洲
AS——亚洲
欧盟 - 欧洲
NA——北美
OC——大洋洲
SA——南美洲
T1 – Tor 网络
5、主机名(http.host):表示完整请求 URI 中使用的主机名。
示例值:
www.example.org
6、IP 源地址(ip.src):表示客户端 TCP IP 地址,可以通过使用 HTTP 标头,对其进行调整以反映客户端的实际 X-Forwarded-For地址X-Real-IP。
示例值:
93.184.216.34
7、引用方(http.referer):表示 HTTP Referer 请求头,其中包含链接到当前请求页面的网页地址。
示例值:
Referer: https://developer.example.org/en-US/docs/Web/JavaScript
8、请求方法(http.request.method):表示 HTTP 方法,以大写字符的字符串形式返回。
示例值:
GET
9、SSL/HTTPS(ssl):当到客户端的 HTTP 连接被加密时返回。
10、URI 完整(http.request.full_uri):表示 Web 服务器接收到的完整 URI(不包括 #fragment,它不会发送到 Web 服务器)。
示例值:
https://www.example.org/articles/index?section=539061&expand=comments
11、URI(http.request.uri):表示请求的 URI 路径和查询字符串。
示例值:
/articles/index?section=539061&expand=comments
12、URI 路径(http.request.uri.path):表示请求的 URI 路径。
示例值:
/articles/index
13、URI 查询字符串(http.request.uri.query):表示整个查询字符串,不带 ? 分隔符。
示例值:
section=539061&expand=comments
14、HTTP 版本(http.request.version):表示所使用的 HTTP 协议的版本。当您需要对不同版本进行不同检查时,请使用此字段。
示例值:
HTTP/1.1
HTTP/3
15、用户代理(http.user_agent):表示 HTTP 用户代理,一个包含特征字符串的请求标头,以允许识别客户端操作系统和 Web 浏览器。
示例值:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
16、X-Forwarded-For(http.x_forwarded_for):表示完整的 X-Forwarded-ForHTTP 标头。
示例值:
203.0.113.195, 70.41.3.18
17、已验证客户端证书(cf.tls_client_auth.cert_verified):当请求提供有效的客户端证书时返回,当请求包含已撤销的有效证书时也会返回。
18、合法机器人爬虫(cf.client.bot):此字段表示请求源自已知良好的机器人或爬虫。提供与相同的信息 cf.bot_management.verified_bot。
19、威胁分数(cf.threat_score):表示 Cloudflare 威胁评分从 0 到 100,其中 0 表示低风险。高于 10 的值可能表示垃圾邮件发送者或机器人,高于 40 的值表示 Internet 上的不良行为者。很少看到超过 60 的值。一个常见的建议是质疑得分超过 10 的请求并阻止得分超过 50 的请求。
20、MIME 类型(http.request.body.mime):从请求正文中检测到的请求的 MIME 类型。支持以下一般类别中最常见的 MIME 类型:视频、音频、图像、应用程序、文本。
例如:
image/jpeg
所有 Cloudflare 计划都提供此字段。
21、标头(http.request.headers):将 HTTP 请求标头表示为 Map(或关联数组)。
关联数组的键是转换为小写的HTTP 请求标头的名称。
当有重复的标头时,数组会按照它们在请求中出现的顺序包含它们。
解码:不执行解码
Whitespace:保留
Non-ASCII:保留
例如:
any(http.request.headers["content-type"][*] == "application/json")
示例值:
{"content-type": ["application/json"]}
22、欧盟(ip.geoip.is_in_european_union):当请求来自欧盟国家时返回。
23、WAF 攻击得分类(cf.waf.score.class):当前请求的攻击评分类,基于 WAF 攻击评分。
可以具有以下值之一:attack, likely_attack, likely_clean, clean。