Frequently Asked Questions

什么是WAF规则

Updated Time:2023-04-27  Views:28235

区域级 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。