文章最后更新时间:
Cloudflare WAF(Web Application Firewall,网页应用防火墙)是一种基于云的安全解决方案,旨在保护网站和网络应用免受常见的网络攻击,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等。Cloudflare WAF 通过在数据流中检测和拦截恶意流量,从而确保网站的安全性。

这里会先从基础开始介绍,基础打牢了你才能理解之间的逻辑。
如果只想看如何配置,可以直接跳转到
【推荐设置 参考建议】
- 威胁检测与防护:实时监控和分析网站流量,自动识别和阻止已知及未知的攻击模式。
- 规则集管理:提供预定义的规则集和自定义规则,用户可以根据具体需求调整防护策略。
- 集成与自动化:与其他Cloudflare服务无缝集成,如DDoS防护、内容分发网络(CDN)等,提供全面的网络安全解决方案。
- 中小企业:通常没有专门的安全团队,依赖 WAF 提供的自动化防护措施。
- 大型企业与电商平台:需要保护大量用户数据,防止经济损失和声誉受损。
- 开发者与网站管理员:需要一个易于管理和配置的安全解决方案,以便专注于核心业务。
- 提升安全性:减少网站被黑客攻击的风险,保护用户数据隐私。
- 增强性能:通过优化规则处理,降低服务器负载,提高网站响应速度。
- 改善用户体验:减少恶意流量干扰,确保网站始终在线和可用。
在 Cloudflare WAF 的设置中,自定义规则是一个非常重要的功能,它允许用户根据自己的网站需求和安全策略,创建和管理独特的防护规则。这些规则可以帮助用户更精确地检测和拦截潜在威胁。
自定义规则使用户能够创建符合特定条件的规则,以阻止、允许或记录特定类型的流量。
用户可以通过条件、逻辑运算符和动作来定义这些规则,从而精细地控制进出网站的流量。

下面我们会先从字段(Field)开始分别对各项进行说明分析
字段讲解
- 概述:
URI 完整 字段指的是请求的完整 URL,包括协议、主机名、路径、查询字符串等所有部分。 - 示例:
如果用户访问https://for-tiger.com/products/item?category=clothes
,
那么URI 完整
的值为https://for-tiger.com/products/item?category=clothes
。 - 应用场景:
适用于需要对完整 URL 进行精确匹配或条件判断的情况。例如,如果你想阻止所有带有特定参数的请求,无论这些请求来自哪个子域或路径。 - 常见用途:
阻止或允许特定完整URL的访问,例如对特定页面进行保护或开放。
- 概述:
URI 字段指的是 URL 的相对路径部分(不包含协议和主机名),包括路径和查询字符串。 - 示例:
在https://for-tiger.com/products/item?category=clothes
这个URL中,URI
的值为/products/item?category=clothes
。 - 应用场景:
在不考虑协议或主机名的情况下,基于相对路径和查询参数对请求进行筛选或管理。 - 常见用途:
针对特定的页面路径和查询参数进行规则设置,比如只对?category=clothes
的请求进行限制。
- 概述:
URI 路径 字段仅包含 URL 中的路径部分,不包括查询字符串和其他部分。 - 示例:
在https://for-tiger.com/products/item?category=clothes
这个URL中,URI 路径
的值为/products/item
。 - 应用场景:
当你只想基于请求的路径来创建规则,而忽略查询参数时使用。例如,只想保护/admin
目录下的所有页面。 - 常见用途:
保护特定目录或页面的访问,例如阻止对/admin
或/private
路径的访问。
- 概述:
URI 查询字符串 字段指的是 URL 中的查询参数部分,也就是?
后面的所有内容。 - 示例:
在https://for-tiger.com/products/item?category=clothes&color=red
这个URL中,URI 查询字符串
的值为category=clothes&color=red
。 - 应用场景:
当你需要对基于查询字符串的参数进行筛选和控制时使用。例如,阻止带有特定参数的请求,或只允许特定参数组合的请求。 - 常见用途:
控制基于用户输入的参数,例如限制特定产品类别的访问或对某些查询进行防护。
Cloudflare WAF 的这些 URI 相关字段选项允许用户根据请求的不同部分创建灵活且精细的安全规则。理解和正确使用这些字段,可以帮助你精确控制哪些流量可以访问网站的特定部分,以及如何应对可能的攻击或异常请求。
根据不同的安全需求,你可以组合这些字段来创建更加复杂的规则,以确保网站的安全性和正常运行。
- 概述:
ASN(AS Num) 指的是自治系统号码(Autonomous System Number)。自治系统是指一个或多个 IP 网络在同一管理实体下进行路由的集合,ASN 是其唯一标识。ASN 通常与特定的互联网服务提供商(ISP)或大型企业网络相关联。 - 示例:
一个常见的 ASN 可能代表某个国家的主要 ISP,或者一个大型企业的专有网络。例如,中国电信的 ASN 是 4134。 - 应用场景:
通过 ASN,你可以对来自特定 ISP 或企业网络的请求进行筛选或控制。例如,你可以阻止某个特定国家的特定 ISP 的访问,或者允许来自某个可信赖的企业网络的请求。 - 常见用途:
阻止恶意网络的流量:如果某个 ASN 与大量恶意活动相关,你可以创建规则来阻止所有来自该 ASN 的请求。
允许可信赖的网络:对于某些内部系统,可能只允许特定 ASN 的请求,以增加安全性。
- 概述:
Cookie 字段指的是在 HTTP 请求中传递的所有 Cookie。Cookie 是服务器发送给客户端并存储在用户浏览器中的小数据块,通常用于保存会话状态或用户偏好设置。 - 示例:
一个典型的 Cookie 可能包含会话 ID,用于识别用户的登录状态,例如session_id=abc123
. - 应用场景:
当你需要基于请求中的所有 Cookie 内容来创建规则时使用。你可以检查 Cookie 是否存在,或者检查其内容是否满足特定条件。 - 常见用途:
验证用户会话:你可以根据请求中是否包含特定的 Cookie 来判断用户是否已登录,并据此采取不同的操作。
防止CSRF攻击:通过检查特定的安全 Cookie 是否存在来防护跨站请求伪造。
- 概述:
Cookie 值(Cookie value of) 字段允许你指定一个特定的 Cookie 名称,并基于其值来创建规则。这使得你可以更加精确地控制和检查某个特定 Cookie 的内容。 - 示例:
如果一个请求包含session_id=abc123
,你可以使用Cookie value of session_id
来检查这个 Cookie 的具体值是否符合预期。 - 应用场景:
当你需要对某个特定的 Cookie 值进行验证或匹配时使用。例如,你可以检查用户的会话 ID 是否有效,或者确保用户的设置 Cookie 包含特定的配置值。 - 常见用途:
验证特定的会话或设置:在处理用户请求时,你可以确保特定的 Cookie 值与预期的格式或内容匹配,从而增加安全性。定制用户体验:基于特定的 Cookie 值,你可以调整用户的访问权限或提供个性化内容。
这些字段选项让你能够基于请求的网络属性(如 ASN)和内容(如 Cookie)来创建更细粒度的规则。通过理解和合理配置这些选项,你可以更好地保护网站免受恶意攻击,并为用户提供更安全的浏览体验。
ASN 可用于基于网络来源的流量控制,适用于屏蔽或允许特定的 ISP 或企业网络。
Cookie 字段让你能基于请求中所有 Cookie 的整体内容来创建规则。
Cookie 值 让你能够基于特定 Cookie 的值进行更精细的控制,适用于验证会话状态或用户设置。
- 概述:
国家/地区(Country) 字段指的是请求发起者的地理位置所对应的国家或地区代码。Cloudflare 通过 IP 地址来判断访问者的地理位置,并将其映射为标准的 ISO 3166-1 alpha-2 国家代码(如 US 代表美国,CN 代表中国)。 - 示例:
如果一个请求来自美国,则这个字段的值为US
;如果来自日本,则值为JP
。 - 应用场景:
这个字段非常适合用于基于国家或地区的流量控制。你可以阻止、允许或限制来自特定国家的访问,或者根据地理位置对流量进行分类和处理。 - 常见用途:
阻止来自特定国家的流量:你可以阻止来自高风险或与业务无关的国家的访问。例如,阻止所有来自RU
(俄罗斯)的请求。
允许特定国家的流量:在某些情况下,你可能只希望允许来自特定国家的用户访问,例如只允许US
和CA
(加拿大)的流量。
定制化内容或服务:基于访问者的国家/地区,你可以提供定制化的内容或语言选项。
- 概述:
洲(Continent) 字段指的是请求发起者所处的大洲。这一字段将用户的地理位置划分为更大的区域,如北美洲(North America),欧洲(Europe),亚洲(Asia)等。 - 示例:
如果一个请求来自北美洲,值可能是NA
;如果来自欧洲,则为EU
。 - 应用场景:
当你需要更大范围地控制流量而不是局限于单个国家时,使用这个字段更为合适。它可以用于对整个大洲的流量进行管理。 - 常见用途:
区域性流量管理:例如,在特定的大洲中启用或禁用特定服务,或者根据大洲的不同提供不同的内容或广告。
全球性限制:在一些情况下,你可能需要针对特定的洲进行全球性流量限制,例如只允许来自欧洲(EU)和北美洲(NA)的访问。
“国家/地区(Country)”和“洲(Continent)”字段为你提供了强大的地理位置基础的流量控制能力。这些字段可以根据地理来源优化网站的安全性、内容分发和用户体验。
国家/地区 字段适用于精确控制来自特定国家或地区的流量,常用于安全性管理和内容本地化。
洲 字段适用于更大范围的区域性控制,适合对大洲级别的流量进行整体管理或提供区域化服务。
- 概述:
主机名(Hostname) 字段指的是请求目标服务器的域名部分,也就是 URL 中标识服务器的部分。主机名通常包含在 HTTP 请求的Host
头字段中。 - 示例:
如果用户访问https://for-tiger.com/path/to/page
,那么主机名是www.for-tiger.com
。 - 应用场景:
该字段适用于多域名环境或多站点环境,尤其是当你希望对不同域名的流量进行不同处理时。 - 常见用途:
多站点管理:在一个Cloudflare账户下托管多个站点时,可以根据主机名创建不同的安全规则。例如,你可以为blog.for-tiger.com
和shop.for-tiger.com
设置不同的WAF规则。
阻止或允许特定域名:你可以创建规则来阻止访问某个特定的子域名,或只允许访问特定的主机名。
- 概述:
IP 源地址(IP Source Address) 字段指的是发起请求的客户端的 IP 地址。这通常是最直接的用于识别和控制访问的字段之一。 - 示例:
如果一个请求来自 IP 地址192.168.1.1
,那么 IP 源地址的值就是192.168.1.1
。 - 应用场景:
该字段非常适合于基于具体 IP 地址或 IP 范围来创建规则,例如阻止特定 IP 地址的攻击请求或允许可信赖的 IP 地址。 - 常见用途:
阻止恶意 IP:你可以根据已知的攻击 IP 列表,阻止特定 IP 或 IP 范围的访问。
允许白名单 IP:为某些管理页面或 API 接口设置 IP 白名单,仅允许来自特定 IP 地址的访问。
DDoS 防护:通过识别和过滤异常大量请求的 IP 地址,减少DDoS攻击的影响。
- 概述:
引用方(Referer) 字段指的是请求中包含的Referer
头字段的值,该字段通常用于表示请求页面的来源(即用户是从哪个页面点击进入的当前页面)。 - 示例:
如果用户在https://www.bilibili.com
上点击了一个链接并跳转到https://for-tiger.com/page
,那么Referer
的值可能是https://www.bilibili.com
。 - 应用场景:
该字段适用于基于流量来源来创建规则,尤其是在防止跨站请求伪造(CSRF)和控制外部链接带来的流量方面。 - 常见用途:
防止盗链:你可以阻止来自未经授权网站的请求,特别是在媒体或资源文件(如图片、视频)被其他网站嵌入时。
限制外部引用:如果你只希望特定网站的流量访问某些页面,可以创建基于Referer
的规则,允许或阻止特定来源的访问。
增强安全性:通过检查Referer
字段来防止 CSRF 攻击,确保请求来自可信任的站点或页面。
这些字段选项提供了对请求来源的更大控制能力:
主机名(Hostname) 适用于多站点或多域名环境,可以帮助你基于访问的具体域名来创建规则。
IP 源地址(IP Source Address) 是直接用于识别请求来源的基础字段,适合进行IP级别的精确控制。
引用方(Referer) 允许你基于请求的来源页面来管理流量,特别是在防止盗链和跨站攻击时非常有用。
- 概述:
请求方法(Request Method) 指的是 HTTP 请求中使用的操作方法,也就是客户端向服务器发出的具体动作指令。常见的请求方法包括 GET、POST、PUT、DELETE 等,每种方法代表不同的操作类型。 - 示例:
GET:用于从服务器请求数据,通常用于请求网页、图片或其他资源。
浏览器访问 https://for-tiger.com/page 时使用 GET 方法请求页面内容。POST:用于向服务器发送数据,通常用于提交表单、上传文件或发送 API 请求。
用户提交登录表单时,浏览器会使用 POST 方法将用户名和密码发送到服务器。PURGE:用于从缓存中清除特定资源,通常用于内容更新时。
在使用 Varnish 缓存的系统中,通过 PURGE 方法清除某个 URL 的缓存。PUT:用于更新服务器上的资源,如果资源不存在则创建该资源。
通过 API 请求更新用户资料,使用 PUT 方法将新的用户信息发送到服务器。HEAD:类似于 GET 方法,但只请求响应头部,不获取实际内容。常用于检查资源是否存在或资源的状态。
浏览器在预取链接(prefetch)时,可能会使用 HEAD 方法检查页面是否存在。OPTIONS:用于请求服务器支持的 HTTP 方法和功能,常用于检查跨域资源共享(CORS)设置。
浏览器发出 OPTIONS 请求,以确定服务器是否允许跨域访问特定资源。DELETE:用于删除服务器上的指定资源。
通过 API 请求删除用户账户,使用 DELETE 方法向服务器发送删除请求。PATCH:用于部分更新服务器上的资源,不像 PUT 会整体替换资源。
通过 API 请求更新用户的部分信息,如仅更新用户的电子邮件地址,使用 PATCH 方法。 - 应用场景:
该字段适用于根据请求的操作类型来创建规则,特别是在控制请求权限、保护敏感操作、或优化流量管理时。 - 常见用途:
限制敏感操作:你可以限制特定请求方法(如 DELETE 或 PUT)的使用,防止未授权的资源删除或更新操作。
控制数据提交:对 POST 请求进行特殊处理,以确保表单提交或文件上传的安全性。
优化流量:通过限制频繁的 GET 请求,防止某些页面或资源被过度抓取,避免服务器负载过高。
- 概述:
SSL/HTTPS 字段指的是请求是否通过 SSL/TLS 加密通道(即 HTTPS)进行传输。HTTPS 是 HTTP 协议的安全版本,通过加密数据传输来保护用户隐私和数据完整性。 - 示例:
如果一个请求通过 HTTPS 协议发送,则此字段的值为True
;如果通过 HTTP 协议发送,则值为False
。 - 应用场景:
该字段用于区分加密与非加密的请求,帮助你强化网站的安全策略,确保敏感数据只能通过安全通道传输。 - 常见用途:
强制 HTTPS:你可以创建规则,强制所有流量必须通过 HTTPS 传输,拒绝或重定向 HTTP 请求。
保护敏感内容:确保敏感页面(如登录页、支付页)只能通过 HTTPS 访问,以防止数据在传输过程中被窃取。
流量分析:基于 SSL/HTTPS 字段分析加密和非加密流量的比例,以优化安全策略。
- 概述:
HTTP 版本(HTTP Version) 字段指的是请求中使用的 HTTP 协议版本。常见的 HTTP 版本包括 HTTP/1.0、HTTP/1.1、HTTP/2 和 HTTP/3,每个版本都有不同的性能和功能特点。 - 示例:
HTTP/1.1:最广泛使用的 HTTP 版本,支持持久连接和分块传输。
HTTP/2:提供更高效的数据传输,多路复用和头部压缩技术,提高了加载速度和性能。
HTTP/3:基于 QUIC 协议的新一代 HTTP 版本,进一步提升了速度和安全性。 - 应用场景:
该字段适用于根据请求所用的 HTTP 版本来创建规则,尤其在优化网站性能、提升用户体验、或支持新技术时非常有用。 - 常见用途:
优化性能:为使用 HTTP/2 或 HTTP/3 的请求提供更好的优先级,减少页面加载时间。
兼容性管理:你可以阻止或重定向旧版本 HTTP(如 HTTP/1.0)的请求,确保用户使用更安全和高效的连接。
分析流量:通过监控不同 HTTP 版本的流量分布,调整网站的技术支持策略,以更好地满足用户需求。
这些字段选项让你可以基于请求的技术细节创建规则:
请求方法(Request Method) 允许你根据操作类型(如 GET、POST 等)进行流量管理和安全控制,保护服务器资源和数据完整性。
SSL/HTTPS 让你能够区分加密与非加密请求,确保敏感数据的安全传输,提升网站整体安全性。
HTTP 版本(HTTP Version) 让你能够根据请求所用的 HTTP 协议版本优化性能、管理兼容性,并支持新技术。
- 浏览器名称及版本:如
Mozilla/5.0
。 - 操作系统:如
Windows NT 10.0
或Macintosh; Intel Mac OS X 10_15_7
。 - 设备类型:如
Mobile
(移动设备)或Tablet
(平板)。 - 渲染引擎:如
AppleWebKit/537.36
或Gecko/20100101
。 - 浏览器具体版本:如
Chrome/91.0.4472.124
或Safari/537.36
。 - 其他附加信息:有时还会包括特定应用程序的版本信息或其他插件的标识。
- Google Chrome:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
- Mozilla Firefox:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
- Safari:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15
- iPhone (Safari):
Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1
- Android (Chrome):
Mozilla/5.0 (Linux; Android 10; Pixel 4 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Mobile Safari/537.36
- 浏览器兼容性:
网站可以根据用户代理字符串来识别访问者使用的浏览器和设备类型,从而提供兼容性支持或优化内容呈现。例如,可以针对不同浏览器提供相应的样式表或 JavaScript 代码。 - 设备识别:
用户代理字符串可以帮助识别用户的设备类型,如桌面、移动设备、平板等。这使得网站可以自动适应不同的屏幕尺寸和输入方式。 - 安全性管理:
通过分析用户代理,系统可以检测和阻止异常或伪造的请求。某些攻击者可能会伪造用户代理字符串,尝试绕过安全机制。了解真实用户代理的模式有助于识别这些异常情况。 - 用户行为分析:
网站可以根据用户代理统计访问者使用的设备和浏览器类型,从而调整技术栈或市场策略。例如,如果大多数访问者使用移动设备访问,可能需要进一步优化移动体验。 - 广告投放优化:
用户代理信息有助于广告系统决定投放什么样的广告,以便根据设备类型和浏览器提供更精准的内容。
- 检测特定浏览器:
通过解析用户代理字符串,可以检测访问者使用的是哪个浏览器。例如,可以检测Chrome
或Safari
字符串,以便提供相应的内容或警告。 - 识别移动设备:
许多用户代理字符串中包含Mobile
或Tablet
字段,用于区分移动设备和桌面设备。你可以利用这一点来自动提供响应式或移动优先的页面设计。 - 防止伪造和作弊:
在某些场景中,用户代理字符串可能被伪造,以模拟不同的浏览器或设备。通过结合 IP 地址、行为模式和用户代理,可以更有效地防止这种作弊行为。
用户代理(User Agent)是一个多功能的 HTTP 请求头字段,通过提供客户端软件和设备的信息,支持网站在兼容性、用户体验、安全性和数据分析等方面的优化。通过对用户代理字符串的正确理解和使用,网站可以更好地满足不同用户的需求,并提升整体访问体验。
- 概述:
X-Forwarded-For 是一个 HTTP 头字段,通常用于标识原始客户端 IP 地址,尤其在通过代理服务器或负载均衡器转发请求时。 - 详细说明:当客户端通过代理服务器或负载均衡器访问服务器时,服务器无法直接看到原始客户端的 IP 地址。为了保持这一信息,代理服务器会在请求中添加
X-Forwarded-For
头字段,该字段通常包含原始客户端的 IP 地址。
如果请求经过多个代理,X-Forwarded-For
字段中可能会列出多个 IP 地址,每个地址之间用逗号分隔,第一个地址是原始客户端 IP,其后的地址是各个代理服务器的 IP。 - 应用场景:
安全性分析:帮助识别并追踪原始请求来源,尤其是在多层代理或 CDN 部署中。
访问控制:基于原始客户端 IP 地址创建 WAF 规则,防止恶意流量或阻止特定地理位置的访问。
日志记录:将X-Forwarded-For
记录到日志中,以确保有完整的访问记录。
X-Forwarded-For 用于追踪原始客户端 IP 地址,特别在代理环境下确保请求来源的可见性。
- 概述:
已验证客户端证书 字段用于标识请求是否通过 SSL/TLS 客户端证书进行了身份验证。 - 详细说明:
客户端证书验证是双向 SSL/TLS 连接的一部分,其中不仅服务器提供证书来证明其身份,客户端也提供证书来证明自己的身份。这种机制用于高度安全的通信场景。
此字段的值通常是True
或False
,取决于请求是否提供了有效的客户端证书,并且证书通过了验证。 - 应用场景:
访问控制:仅允许通过客户端证书验证的请求访问特定的敏感资源或服务。
安全性增强:在高安全性需求的环境中,确保只有持有有效证书的客户端才能连接服务器。
认证管理:可以与用户角色或权限系统集成,基于证书身份授予不同的访问权限。 - 建议措施:
true:表示客户端证书已验证成功,可以允许访问。
建议措施:Skip(跳过)或 Managed Challenge(托管质询)以继续进行其他验证步骤。false:表示客户端证书未验证成功或没有提供客户端证书。
建议措施:Block(阻止)或 Managed Challenge(托管质询)以防止未授权访问。
已验证客户端证书 确保只有通过双向 SSL/TLS 验证的请求才能访问敏感资源。
- 概述:
一次性电子邮件检查 字段用于检测请求中使用的电子邮件地址是否为一次性电子邮件服务提供的临时地址。 - 详细说明:
一次性电子邮件服务允许用户生成临时电子邮件地址,这些地址通常在短时间内有效,用于临时注册或接收验证邮件。
使用一次性电子邮件的用户通常试图避免长期接收邮件或规避身份识别,这对网站安全和用户质量管理构成挑战。 - 应用场景:
注册防护:在用户注册过程中检查电子邮件地址,拒绝或限制使用一次性电子邮件地址的用户。
用户质量管理:防止使用一次性电子邮件地址来进行垃圾注册或滥用平台资源。
内容审核:对提交内容的用户进行身份验证,提高平台内容的可信度。
一次性电子邮件检查 帮助网站防范使用一次性邮箱的低质量注册用户。
- 概述:
已知自动程序 字段用于检测和标识已知的自动程序(如搜索引擎爬虫、社交媒体机器人)发出的请求。 - 详细说明:
许多自动程序(Bots)会定期访问网站以收集数据或执行某些任务,如 Googlebot 用于搜索引擎索引页面内容。
Cloudflare 通过分析用户代理字符串、行为模式和其他特征来识别这些已知的自动程序,并可以自动将它们归类到“已知自动程序”类别中。 - 应用场景:
搜索引擎优化(SEO):允许已知的搜索引擎爬虫(如 Googlebot)自由访问网站,以确保网页内容被正确索引。
流量管理:区分人类用户和自动程序,以优化服务器资源使用或分析流量来源。
安全管理:识别并阻止恶意自动程序,保护网站免受不良爬虫或爬取行为的影响。
已知自动程序 用于区分合法的自动程序与潜在的恶意爬虫,优化网站的响应行为。
- 概述:
威胁分数 是 Cloudflare 基于其全网威胁情报系统,对每个请求进行打分以衡量其潜在威胁的大小。
范围从0到100,数值越高代表威胁越大。 - 详细说明:
威胁分数由 Cloudflare 根据多种因素综合计算,包括请求的来源 IP 是否在黑名单中、请求模式是否异常、历史行为记录等。
分数越高表示该请求的威胁可能性越大,反之亦然。 - 应用场景:
安全防护:对高威胁分数的请求进行自动拦截、挑战或阻止,防止潜在攻击。
访问控制:可以设定特定的威胁分数阈值,只允许低威胁分数的请求通过,提升网站安全性。
日志分析:通过分析威胁分数,可以识别和追踪潜在的攻击活动,进一步优化安全策略。 - 正常数值:通常20以下为低威胁,20-60为中等威胁,60以上为高威胁。
威胁分数 则是对所有请求进行风险评估,帮助快速识别和处理潜在的安全威胁。
在 Cloudflare WAF 中用于识别并分类经过验证的自动程序(也称为“Bots”)的一个字段。Cloudflare 通过分析大量数据,能够识别并区分合法的自动程序,
确保它们能够正确地访问和使用网站资源,而不被意外阻止或限制。
- 概述: 这一类别包括由搜索引擎公司(如 Google、Bing、Yahoo 等)运营的自动程序,它们用于抓取网页内容以更新搜索引擎的索引。
- 作用: 保证搜索引擎能够索引网站内容,以便在用户搜索时提供准确的结果。
- 策略: 通常应允许这些爬虫访问,以确保网站内容被正确索引,从而优化 SEO 表现。
- 建议措施:Skip(跳过)或 Managed Challenge(托管质询) 以确保搜索引擎可以正常抓取你的网站。
- 概述: 这一类别包括用于优化网站在搜索引擎中表现的自动程序,如分析关键词、监控排名等。
- 作用: 帮助网站管理员提高搜索引擎排名,改进网站在搜索结果中的可见性。
- 策略: 可根据需要允许访问这些程序,尤其是对于积极进行 SEO 优化的网站。
- 建议措施:Skip(跳过)
- 概述: 包括用于监控网站性能、分析流量、检查网站可用性和速度的自动程序。
- 作用: 提供网站健康状况、流量来源和用户行为的详细报告,有助于性能优化。
- 策略: 允许这些程序访问,以确保网站性能和用户体验得以持续监控和优化。
- 建议措施:Managed Challenge(托管质询)
- 概述: 包括用于广告投放、广告效果监控、用户跟踪和市场营销分析的自动程序。
- 作用: 支持广告活动的优化和效果分析,以提高投资回报率(ROI)。
- 策略: 视具体情况决定是否允许访问,特别是在广告营销活动对网站重要时应予以支持。
- 建议措施:JS Challenge(JS 质询)
- 概述: 这些自动程序生成网页的预览,例如在社交媒体或消息应用中共享链接时显示的缩略图和摘要。
- 作用: 提供页面内容的视觉预览,提升用户在其他平台上的互动体验。
- 策略: 通常应允许访问,以确保网站链接在外部平台上呈现良好的视觉效果。
- 建议措施:Skip(跳过)
- 概述: 包括由学术机构或研究人员运行的自动程序,用于数据收集和分析以支持研究工作。
- 作用: 支持学术研究和数据收集,特别是在网站涉及公共数据或开放数据时。
- 策略: 可根据网站的内容和目标群体决定是否允许访问,通常对开放性数据网站有利。
- 建议措施:JS Challenge(JS 质询)
- 概述: 这一类别包括用于安全检查、漏洞扫描和威胁检测的自动程序。
- 作用: 提高网站安全性,检测潜在的漏洞和威胁。
- 策略: 一般建议允许访问,以确保网站安全状态得到有效监控。
- 建议措施:Managed Challenge(托管质询)
- 概述: 包括用于提高网站对残疾人用户可访问性的自动程序,如屏幕阅读器和辅助技术工具。
- 作用: 提高网站的无障碍性,确保所有用户都能访问和使用网站内容。
- 策略: 强烈建议允许访问,以提升网站对残障用户的友好度和合规性。
- 建议措施:Skip(跳过)
- 概述: 这些自动程序用于在特定事件发生时通知服务器或触发操作,通常用于实时更新和数据同步。
- 作用: 支持实时通信和系统集成,确保不同平台或服务之间的数据一致性。
- 策略: 允许访问,特别是在使用 Webhook 进行实时通信的环境中。
- 建议措施:Interactive Challenge(交互式质询)
- 概述: 包括用于提取 RSS、Atom 等内容源的自动程序,通常由新闻聚合器、阅读器或内容平台使用。
- 作用: 提供网站内容的持续更新,支持用户通过外部平台跟踪和阅读网站内容。
- 策略: 通常应允许访问,以确保网站内容可以被外部平台和用户及时获取。
- 建议措施:Managed Challenge(托管质询)
- 概述: 包括由人工智能系统运行的自动程序,通常用于数据收集、模型训练或自动化内容分析。
- 作用: 支持 AI 应用的开发和优化,特别是在需要大规模数据收集和处理时。
- 策略: 根据具体用途和数据隐私要求决定是否允许访问,某些情况下可能需要限制。
- 建议措施:Block(阻止)
- 概述: 这些自动程序从不同网站或内容源收集信息,通常用于创建汇总内容或综合报告。
- 作用: 支持信息的聚合和展示,帮助用户快速获取相关领域的综合信息。
- 策略: 视具体情况决定是否允许访问,尤其是在内容聚合对网站流量或品牌有益时。
- 建议措施:JS Challenge(JS 质询)
“已通过验证自动程序类别(Verified Bot Category)”字段选项可以帮助网站管理员更精细地管理和控制不同类型的自动程序访问。这些分类覆盖了从搜索引擎优化到安全监控、广告营销等多个领域的应用,允许管理员根据具体需求决定是否允许这些自动程序访问网站资源。合理使用这些选项,可以优化网站性能、安全性以及用户体验,同时确保合法的自动程序能够正常工作。
- MIME 类型(Multipurpose Internet Mail Extensions Type)是互联网标准,用于指明文件的内容类型。它通常用于 HTTP 协议中的
Content-Type
头字段,告知浏览器或其他客户端如何处理所接收的数据。 - 详细说明:
MIME 类型以两部分组成,中间用斜杠(/
)分隔,如text/html
、image/jpeg
、application/json
。
常见的 MIME 类型包括:text/html
:HTML 文件image/jpeg
:JPEG 格式的图片application/json
:JSON 格式的数据text/css
:CSS 样式表application/javascript
:JavaScript 代码
- 应用场景:
内容安全策略(CSP):基于 MIME 类型来控制哪些类型的内容可以在页面上加载,从而防止跨站脚本攻击(XSS)。
请求过滤:WAF 可以基于 MIME 类型来允许或阻止特定类型的请求,比如禁止上传或下载某些类型的文件。
性能优化:通过识别 MIME 类型,WAF 可以决定是否应用特定的优化措施,例如压缩或缓存策略。 - 策略示例:
阻止危险文件类型:阻止上传或访问application/octet-stream
类型的文件,以防止不明文件被上传到服务器。
允许特定类型的响应:只允许text/html
和application/json
的响应,确保其他类型的内容被视为潜在威胁并进行处理。
- 概述:
标头 是 HTTP 请求和响应中包含的元数据,用于传递关于客户端、服务器和请求/响应内容的额外信息。HTTP 标头在请求(如浏览器向服务器发送)和响应(服务器返回给浏览器)中都扮演重要角色。 - 详细说明:
HTTP 标头的结构为键值对形式,例如Content-Type: text/html
。
标头可以分为多种类型:
通用标头(General Headers):适用于请求和响应的标头,例如Date
和Connection
。
请求标头(Request Headers):客户端发送的标头,例如User-Agent
和Accept-Language
。
响应标头(Response Headers):服务器返回的标头,例如Server
和Set-Cookie
。
实体标头(Entity Headers):描述请求或响应主体的标头,例如Content-Length
和Content-Encoding
。 - 应用场景:
安全性管理:通过检查和过滤 HTTP 标头,可以防止常见的安全威胁,例如 HTTP 响应拆分、跨站脚本(XSS)和 SQL 注入。
流量控制:根据请求标头中的信息,例如User-Agent
或Referer
,可以执行流量管理策略,阻止恶意请求或优化合法请求的处理。
性能调优:通过分析和设置响应标头,可以优化缓存策略、压缩数据和控制连接的持久性(Keep-Alive)。 - 策略示例:
过滤特定标头:例如,阻止包含特定User-Agent
字符串的请求,以防止已知的恶意自动程序访问网站。
检查Referer
:根据请求的Referer
标头,允许或阻止从特定站点的请求,以防止引用攻击或不良来源的流量。
MIME 类型 和 标头 是 HTTP 协议中的核心概念,在 Cloudflare WAF 的配置中可以帮助管理员精细地控制和优化请求和响应的处理。通过基于 MIME 类型和标头设置规则,网站可以提高安全性、增强性能,并确保请求和响应行为符合预期,从而防止潜在的安全威胁和性能问题。

用于定义条件的匹配方式,包括:
- 等于(equals):字段值必须与指定的值相等。
- 不等于(does not equal):字段值必须与指定的值不相等。
- 包含(contains):字段值必须包含指定的子字符串。
- 不包含(does not contain):字段值不得包含指定的子字符串。
- 正则表达式匹配(matches regex):使用正则表达式匹配字段值,适用于复杂的匹配需求。
逻辑运算符允许用户组合多个条件,以构建复杂的自定义规则。常用的逻辑运算符包括:
- AND:所有条件必须为真,规则才会触发。
- OR:只要任一条件为真,规则就会触发。
- NOT:反转条件的真假值,用于排除特定流量。
例如,用户可以创建一个规则,当请求来源于特定 IP 且 URI 包含 /admin
时触发。
Cloudflare WAF 提供了几种关键的安全性措施,以保护网站免受各种网络攻击。以下是这些措施的简要介绍:

- 描述:由Cloudflare托管的挑战,会展示给访问者一种自动化检测以确认是否为真实用户,如CAPTCHA。
- 示例:当一个爬虫程序访问你的站点时,用户需要通过CAPTCHA验证,确认自己不是机器人。
- 适用场景:适用于需要更严格验证但不希望完全阻止的访问,如监控与分析爬虫、SEO工具等。
- 优先级:通常用于不太确定是否为恶意行为的情况,旨在平衡安全性和用户体验。
- 描述:直接阻止访问者的请求,不允许访问网站。
- 示例:恶意爬虫或具有高威胁分数的请求会被直接拒绝访问。
- 适用场景:用于阻止明显恶意的访问,如AI爬虫程序、广告与市场营销爬虫等。
- 优先级:适用于识别度高、威胁明确的情况,如已知的攻击 IP、特定的恶意请求等。
- 描述:JavaScript挑战,通过要求访问者执行JavaScript代码以确认其是否为真实用户。
- 示例:访问者需要成功执行JavaScript代码才能继续访问。
- 适用场景:适用于稍微严格但对用户体验影响较小的情况,如学术研究爬虫、提要获取器等。
- 优先级:适合对付简单的机器人攻击,同时不影响人类用户的正常访问。
- 描述:允许访问者直接访问,不进行任何额外验证。
- 示例:正常的搜索引擎爬虫,如Googlebot,可以直接访问你的站点。
- 适用场景:适用于可信任的爬虫,如搜索引擎爬虫、无障碍工具等。
- 优先级:在某些情况下,你希望特定的流量完全绕过 WAF 规则,这时可以使用“跳过”策略。
- 描述:提供更为复杂的验证步骤,可能包括人机验证(如reCAPTCHA)。
- 示例:访问者需要完成复杂的验证任务才能继续访问。
- 适用场景:适用于需要更高安全级别的访问,如网络钩子(Webhooks)。
- 优先级:用于高度怀疑的访问者,尤其是在怀疑有恶意行为但不想直接阻止的情况下。

通过Cloudflare WAF 的规则,就需要进行人机验证后才能访问你的网站,这个界面你一定很熟悉。
Cloudflare WAF 的这些安全性措施允许用户根据不同的访问者行为和威胁级别来灵活选择相应的响应策略,从而实现更精准、更高效的安全防护。这些策略之间的优先级和用途可以根据具体需求进行调整,以确保最佳的安全性和用户体验平衡。
建议同时与这个链接一起参考,只有理解基础逻辑你才能更好的优化自己的网站。

自动程序攻击模式:开启后会影响到Cloudflare 速度 Observatory 中的抓取。


可以拦截一定量的 AI 爬虫程序和爬网程序,完全不会对页面造成任何影响,建议设置。

通过对搜索引擎爬虫的核对,将可疑的爬虫机器人筛选出来并拦截。
此方法虽然非常有效,但可能会影响搜索引擎对网页 robots.txt 的抓取。

可以有效针对特定用户代理中的任何一段含有的信息进行拦截。
比如你可以拦截Nexus 5X手机型号、Chrome浏览器、Linux主机系统等。
这种方法适合拦截一些未知的用户,设置不当可能会同时拦截真实访问的用户。


通过查看过往404日志,针对不属于你的恶意链接直接通过关键词屏蔽。
需要定期更新你的数据,毕竟恶意链接也会更新。
在 Cloudflare 中查看防火墙事件和拦截记录
可以帮助你了解哪些请求被防火墙规则拦截,并分析潜在的安全威胁或误报。

通过查看 Cloudflare 的防火墙事件日志,你可以监控和分析哪些请求被拦截,了解潜在的威胁,并根据需要调整防火墙规则。这是确保网站安全性并优化防火墙配置的重要步骤。
Cloudflare 托管的规则集,可自动缓解基于 HTTP 的 DDoS 攻击,
如 HTTP 泛洪、放大 HTTP 攻击和反射 HTTP 攻击。


Cloudflare WAF 是一款强大且灵活的网络安全工具,适用于各种规模的网站和应用。
它不仅能够有效地防护常见网络攻击,还能提升网站的性能和用户体验。
对于没有专门安全团队的中小企业,Cloudflare WAF 提供了一个易于使用且经济实惠的安全解决方案。
如果你希望通过提高网站安全性来增强用户信任和满意度,Cloudflare WAF 是一个值得考虑的选择。
暂无评论内容