网页被篡改,一般是指网站的页面被挂马或内容被修改。它的危害,轻则误导用户,窃取用户数据,收集用户私隐,造成用户在金钱和名誉上的损失,进而影响网站所属公司的声誉,造成股价下跌,重则导致政治风险。
那么,网页被篡改的危害如何消除呢?先从网站的数据流角度来看这个问题。
从上图来看,网页被恶意篡改有三条路径:
-
站点页面被恶意篡改
-
CDN同步了被恶意篡改的页面
-
CDN上内容被恶意篡改
其中1,2是相连的。由于站点页面也会有正常的版本更新。
那么,网页防篡改方案必须要解决以下问题:
1.发现站点网页被恶意篡改或恶意上传,并对它恢复或删除,同时上报异常文件的日志。
2.分辨出正常的网页更新,不会用旧版本的页面覆盖新版本的页面。
3.保证CDN缓存的页面不会被篡改,确保用户不会访问被篡改的页面。
由于CDN一般是购买的,不在站点的网络里,而且一般不会是物理主机,只是一些虚拟主机或空间,很难对CDN节点所在的主机进行页面监控。那么, CDN这一块应该怎么做呢?
先看一下CDN节点的技术分析。
-
CDN主机能够接受http请求并返回响应,那么它应该是webserver。
-
CDN主机是把主站的内容缓存起来,那么可以认为它是一个加载缓存模块的webserver。
-
看一下主流webserver的缓存模块机制。无论apache的mod_cache还是nginx的缓存机制,为了性能,基本上都是采用key/value组织方式缓存,缓存内容要么是放置在共享内存。而缓存内容生成是这样:当有请求过来,根据请求里的url和字段生成key,查询缓存是否存在,如果不存在,则到站点去请求;当响应经过CDN时,根据配置的策略决定是否把响应缓存起来。
根据上面的技术分析,网站的数据流图应该如下:
那么,如果站点里维护一个cache,供用户浏览和CDN同步,这个cache每隔一段时间(比如1分钟)才会同步站点的页面文件,类似mod_cache之类机制。只要站点在这段时间能够识别出恶意篡改行为,并消除影响,那么,无论是用户浏览,还是CDN同步,都不会受到恶意篡改的影响。那么,网页防篡改方案可以忽略CDN这个因素。
那么,站点使用cache后,网页防篡改需要解决的问题只有两个:
1.发现站点网页被恶意篡改或恶意上传,并对它恢复或删除,同时上报异常文件的日志。
2.分辨出正常的网页更新,不会用旧版本的页面覆盖新版本的页面。
觉得好,请关注本公众号和分享到朋友圈。麻烦点击一下右下角的“在看”。谢谢!
原文始发于微信公众号(debugeeker):网页防篡改1:探究
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论