浅尝雷池WAF社区版动态防护

近期雷池发布了6版本,相比5版本,最新的v6提供了动态防护能力(链接: 雷池社区版发布动态防护能力),社区版也有幸能够体验此功能(虽然社区版单站点只支持一个路径资源的动态防护)

这里以最近很火的自托管个人相册管理工具immich为例,尝试为其打开动态防护功能。

篇幅限制,这里仅涉及雷池配置部分,关于 immich 的搭建请直接移步官方文档。

站点配置

雷池作为串连接入我们的访问链路,可以将其理解为 Nginx, 这里假设我们的 immich 部署在内网的 192.168.1.2 8080端口,域名http://immich.com解析到了雷池所在机器的IP,拟通过https://immich.com来访问 则上图站点配置应当为:

域名: http://immich.com

端口: 443

证书: http://immich.com的SSL证书

上游服务器: http://192.168.1.2:8080

至此,我们可以直接通过访问 https://immich.com 来访问到我们的 immich 服务。

开启动态防护

进入 “站点管理”,点击对应站点的 “动态防护”:

打开动态防护,选择 添加需要保护的资源

注意: 这里被保护的资源列表来自于站点资源采集(点击站点可以进入查看已经采集的资源),采集是只有访问过的资源才会被采集到(并且上限500个资源),因此,当你在”添加需要保护的资源“中没有发现想要的资源时,需要试图访问一下,等待雷池采集,再重新添加。

开启动态防护后,我们访问指定的资源(目前似乎还只支持静态资源)便会经过雷池的混淆:

访问时会先经过浏览器解密:

查看被访问的资源源代码已经被雷池混淆过:

加密前:

加密前

加密后:

加密后

大致在devtools看了一下解密过程:

访问时通过查看容器的日志发现访问动态防护资源时,safeline-chaos有这样的两条日志:

猜测是雷池在请求链路的过程中将指定path的资源经过了AES-GCM加密,返回加密混淆后的数据给到浏览器,浏览器再通过js来进行解密,完成后最终渲染。


结语

目前来看,动态防护已经能够阻挡一大部分机器爬虫了(互联网中,大部分爬虫也是来自于广撒网的机器人爬虫),针对一般的漏洞扫描器也有比较好的效果。

不过需要注意的是,由于许多搜索引擎对JS的支持问题,因此开启了动态防护的页面可能会影响搜索引擎的收录,注重SEO的站长需要针对搜索引擎的爬虫做特殊处理。

另外就是,根据动态防护的原理, 一些针对性的爬虫(如无头浏览器)行为,可能效果也会打折扣。

总得来说,雷池WAF社区版提供的基础能力已经能够覆盖小型站点的大部分防护场景了, 目前社区也比较活跃, 官方对于社区的反馈处理也比较及时, 值得一试。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值