如果博客类站点的DNS解析是依赖于Cloudflare的相关服务,那么防火墙(WAF)规则可以参考本站的下述几则设置。

按区域阻止访问

位置:域名 -> 安全性 -> WAF -> 自定义规则

如果不希望自己的网站被某些国家/地区访问,可以设置按区域的阻止规则。本站阻断了4个国家或地区的访问通道,表达式为:

(ip.geoip.country eq "IL") or (ip.geoip.country eq "RU") or (ip.geoip.country eq "TW") or (ip.geoip.country eq "TR")

Cloudflare的表达式生成器会依据上式生成如下逻辑结构。不写表达式直接编辑逻辑结构亦可,两种操作是等效的。

之后在【然后采取措施】中选择【阻止】,即达到了按区域阻止的目的:

阻止可能的木马程序

位置:域名 -> 安全性 -> WAF -> 自定义规则

通过一些规则来限制网站的后门使用权限,降低被木马侵入的风险。表达式为:

(http.request.uri.path contains "/aaa") or (http.request.uri.path contains "/trust") or (http.request.uri.path contains ".zip") or (http.request.uri.path contains ".tar") or (http.request.uri.path contains ".htm")

或者使用逻辑结构:

同样选择【阻止】,即完成了规则设置。

阻止恶意爬虫

位置:域名 -> 安全性 -> WAF -> 自定义规则

识别自动程序并依据其IP信誉进行阻止或放行操作。IP信誉(Cloudflare中为【威胁分数】)的设置是必需的,除非你希望自己的站点连搜索引擎都爬取不了。表达式为:

(not cf.client.bot and cf.threat_score gt 5)

或者使用逻辑结构:

这里的【威胁分数】下界建议设置在2 ~ 10之间。

采取的措施可以是【托管质询】或者是【阻止】,这里差别不大。【托管质询】是让Cloudflare首先生成一个验证页面(CAPTCHA),爬虫机器是难以通过验证的。

阻止友商抓取

位置:域名 -> 安全性 -> WAF -> 自定义规则

国内云服务器上的恶意程序比例相当高:截至这篇文章发布前,以本站为对象的恶意操作者,其IP除一例来自德国外,其余均来自于中国国内云服务器。

而另一点共识则是,利用云服务器IP访问博客网站的行为,基本不会是友好接触。

因此,设置规则用以屏蔽来自国内三大云服务器的IP具有重要的意义(这一规则也是本站拦截频率最高的一条规则),表达式为:

(ip.geoip.asnum in {37963 45090 55990} and not cf.client.bot)

或者使用逻辑结构:

值37963、45090、55990分别代表了阿里云、腾讯云和华为云。这里设置【已知自动程序】值为否。

采取措施同样既可以是【托管质询】也可以是【阻止】。本站这条规则的CSR(质询解决率,这个值越低说明规则越有针对性)一直为0,表明被该规则拦截的都是非人生物,因此直接阻断访问也是可以的。

限制访问频率

位置:域名 -> 安全性 -> WAF -> 速率限制规则

限制对网站的快速爬取,以免造成服务器过载致使网站一定时间内瘫痪。

表达式为:

(http.request.uri.path contains "/")

或者使用逻辑结构:

其余指标如访问频率、阻止时长等可以酌情自行设置,也可以参考本站的设置: