根据上面的论述,可以忽略cdn,可以只考虑站点本身的实现,但站点需要维护页面cache。那么,这个cache应该部署在哪里呢?
一般站点都在webserver前面加上waf,统一管理站点所有域名的防护。如果这个cache是在waf上实现,可以有这样的优势:
-
降低运维成本,可以统一对所有站点进行网页防篡改。
-
提高站点响应速度,由于请求到waf直接可以收到响应,不需要在后面webserver了。
那么waf上的cache是如何同步呢?一般同步会有三种方式:
-
请求触发。每个请求过来,如果在cache没有找到相应的响应,就去webserver同步
-
定时触发。waf定时对所有域名统一同步,或者定时对每个域名同步,或者对单个域名单个路径同步。
-
操作同步。运维人员对某个域名配置网页防篡改,waf对该域名同步。
这三种方式来说,以第三种方式为最优。
-
如果恶意用户上传了个文件,然后请求,就会把恶意文件同步到cache,网页防篡改完全不起作用。
-
恶意文件上传了,隔一段时间还是会同步,只是留着后端webserver所在宿主机查杀恶意文件的时间,以分钟为单位。且,web发布一般不频繁,这样只会影响waf的性能。
-
由于web发布并不频繁,用这种方式,并不会影响waf的性能,留给后端查杀恶意文件的时间非常充足,以天为单位。华为云waf就是采用这种方式。
但是,由于waf一般不会和发布系统联动,而且也不会和后端数据库连接。所以,这个方案的劣势也是非常明显的:
-
waf无法感知web发布,且,waf负责人员和发布系统人员往往不是同一个人,使得cache并没有更新到最新版本,让用户一直请求旧版本,导致用户对企业失望,从而用户流失。
-
waf无法防护动态脚本的篡改。
-
网页防篡改功能的不稳定可能会影响到整个waf,乃至整个站点服务断连
-
它并没有感知恶意篡改和分辨正常更新的能力,这一块工作只能由其它工具完成。
觉得好,请关注本公众号和分享到朋友圈。麻烦点击一下右下角的“在看”。谢谢!
原文始发于微信公众号(debugeeker):网页防篡改2:waf方式
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论