Update 2022-08-15-cdn-verify.md

pipelines/613470293
mayx 2022-08-15 06:17:49 +00:00
parent 6aa1a01e59
commit 260a9743a7
1 changed files with 2 additions and 2 deletions

View File

@ -11,10 +11,10 @@ tags: [Cloudflare, CDN, 安全]
不过随着Cloudflare的业务越来越广泛设置白名单这种方法我感觉已经很不靠谱了。而且最近也遇到一个问题就是花火学园的用户有些人会使用自动签到的脚本比如[ForumSignin](https://github.com/LovesAsuna/ForumSignin)使用这种脚本破坏了大家公平竞争的原则。虽然我用Cloudflare WAF写了一个很简单的规则解决掉了这个问题但是万一有人悄悄的绕过了Cloudflare直接访问源站的方式签到那我设置的防火墙就没有一点点用处了。今天正好看到了Cloudflare的双向认证的功能配置好之后也正好分享一下。
# 关于防火墙白名单的缺陷
我们现在已经知道了Cloudflare除了本身CDN的业务外还加了很多花里胡哨的比如WorkersWARP之类的功能这些功能有一个特点就是能利用Cloudflare自己的IP来任意发起请求那防火墙本来就是通过检测访问的IP是不是来自Cloudflare这种方式来判断你要是能使用这些功能来向我的源站发请求不就可以随意的绕过WAF了嘛。
我们现在已经知道了Cloudflare除了本身CDN的业务外还加了很多花里胡哨的功能,比如WorkersWARP之类的这些功能有一个特点就是能利用Cloudflare自己的IP来任意发起请求那防火墙本来就是通过检测访问的IP是不是来自Cloudflare这种方式来判断如果能使用这些功能来向我的源站发起请求不就可以绕过WAF了嘛。
# 解决方法
以前我的想法是如果Cloudflare能发送一个只有我和Cloudflare的请求头那不就可以了嘛比如Token啥的但是我没在Cloudflare上发现这个功能。不过今天又没事看了看Cloudflare的功能发现居然有个叫做“经过身份验证的源服务器拉取”功能看了看[功能解释](https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/explanation/),原来这是通过双向认证实现的,这配置起来也非常的简单,所以就按照[配置文档](https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/set-up)的说明设置了。
以前我的想法是如果Cloudflare能发送一个只有我和Cloudflarez知道的请求头那不就可以了嘛比如Token啥的但是我没在Cloudflare上发现这个功能。不过今天又没事看了看Cloudflare的功能发现居然有个叫做“经过身份验证的源服务器拉取”功能看了看[功能解释](https://developers.cloudflare.com/ssl/origin-configuration/__authenticated-origin-pull/explanation/),原来这是通过双向认证实现的,这配置起来也非常的简单,所以就按照[配置文档](https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/set-up)的说明设置了。
如果看不懂英文,我大概解释一下,首先下载[Cloudflare 客户端CA](https://developers.cloudflare.com/ssl/static/authenticated_origin_pull_ca.pem)如果是Apache服务器就直接在配置文件里面写
```
SSLVerifyClient require