优化网站重要页面发布流程以提升内容安全性

2020-10-14 01:03雷蕾
网络安全技术与应用 2020年10期
关键词:预览页面服务器

◆雷蕾

优化网站重要页面发布流程以提升内容安全性

◆雷蕾

(新华网股份有限公司 北京 100031)

对网页内容安全性有较高要求的网站,必须从采编和技术两个方面提高稿件的页面的正确性。本文以网站首页为例,通过对重要页面的发布流程进行改造,将现有发布流程中位于发稿系统中的审看环节后置到真正的网络分发前,有效隔离了编辑、传输、篡改等可能导致错误的环节对于重要页面内容正确性的影响。该优化方案权衡了发稿效率、技术系统改造量、内容安全性等各方面因素,在对现有机制最小化扰动的基础上提升了内容安全性。

网站发布流程;网页内容安全性;CDN分发

1 引言

对于内容安全性有较高要求的网站在内容发布之前,都会有严格的审校、预览要求。但是,目前广泛采用的网页发布流程的预览环节被安排在发稿环节,而最终真正分发到互联网上的页面,审校人员无法看到。这种情况下,不可避免发生展示效果和预期效果(预览效果)有差异的情况,对于网站来讲,即产生错误,例如图片无法显示(可能是文件存储失败)、稿件列表排序错误(可能是指令传输失败)等。

具体来看,就是在当前常用的网站发布模式中,内容被预览审核后,还需要经历几个环节才能进入真正的网络分发,即:页面在发布前,预览操作由编辑人员在内容管理系统(CMS:Content Management System)中进行;而实际网民看到的页面,来自内容分发网络(CDN:Content Delivery Network)服务器[1],这些服务器上的内容,是CMS中的内容经过多环节传递后的复制版本(见图1 )。也就是说,编辑人员预览的内容,存储于CMS服务器,网民真正看到的页面,存储于CDN服务器;编辑人员预览检查的内容和互联网上的内容,是两个完全独立的实例。因此,会发生正确的内容经过传输后发生错误,但是仍然被发布出去的问题。甚至有些拼装页面,页面内容生成后,经过自动发布后,才能查看,无法预览。

图1 现有发布流程

当前常用的发布流程一般分为三部分(见图中①②③):

第一部分,由“CMS”和“编辑人员操作”共同组成。编辑人员对内容进行编辑,然后在CMS中确定没有问题后,点击“发布”,CMS内就生成静态页面,编辑人员进行预览;

第二部分,是机器自动分发环节。CMS将第一部分产生的内容发布到网页防篡改系统(iGuard)上,iGuard再将这些内容分发给Web服务器群(此处设定为20台服务器。这些服务器存储同样的内容,互为备份,由负载均衡设备负责任务分工调用)[2];

第三部分,CDN自动获取内容并加速的部分。CDN根据配置,自动以一定的时间间隔经过负载均衡设备获取Web服务器上的各种内容资源,并推给大量的CDN节点服务器进行缓存[3]。网民访问网页时,CDN会自动就近或者根据访问压力,将网民访问引导到接入率较高的节点服务器。

上述发布流程是目前大型主流网站广泛使用的发布模式,经过多年发展进化,对于有海量发布任务的网站,这种模式有效地平衡了发布效率和内容安全之间的关系。

但是,针对内容安全性要求较高的网站,第二部分漫长的分发通道成为前面所述的漏洞。一旦分发通道中的任何一个环节出现问题,例如硬件故障(硬盘磁道有瑕疵、电源模块出问题导致电压不稳而使得写入失败等)、软件自身漏洞、软件执行线程冲突、网络抖动、被攻击等等,都有可能使网民看到的最终实例出错。尽管出现这种失败的概率很小,但是对于内容安全性要求较高的网站,也可能会造成很严重的后果。

为了解决上述问题,考虑对现有内容发布机制进行优化:在CDN发布前增加预览功能,改CDN自动更新为手动更新,以提高网站内容安全性。鉴于手动更新效率有限,这样的优化不适合大量稿件发布,上述优化方案限定只针对网站某些特定重要区域的内容发布,本文讨论针对首页进行优化。

首页作为网站浏览入口,重要性不言而喻,对于差错的敏感度极高,以下是首页相关优化过程。

1.1 首页发布流程优化一

在发布流程中,增加首页在CDN发布前的预览环节(见图2):

(1)对于首页,取消CDN自动刷新发布,改为“手动刷新”。首先,确保首页资源能够通过一定规则筛选出来,以便CDN能够在抓取目录中,定位到首页资源,从而制定独立的抓取规则。其次,由于CDN并不支持取消自动刷新,所以,需将自动刷新间隔设置为较长时间,从而通过在较短间隔内进行手动刷新的方式来模拟实现屏蔽自动刷新;

(2)在CDN刷新环节前,增加“首页预览”环节,即提供手段通过负载均衡浏览Web服务器上的待发布内容。

但是,在这个架构中,Web服务器群中会有多台服务器(本例中是20台),负载均衡每次随机命中其中一台对外提供服务,因此,在“首页预览”环节所看到的首页以及手动刷新CDN时被发布的页面,分别不确定会来自多台中的哪一台,很可能出现编辑看到的页面没有问题,但是真正发布的页面,来自于另外一台有问题的服务器,最终导致用户看到的内容有问题。因此,还需进一步优化。

1.2 首页发布流程优化二

为了确保预览和发布的页面都没有问题,针对上面的结构,就必须检查所有Web服务器上的内容都是正确的。除此之外,还要从“负载均衡”的角度去确认一遍,以确保Web服务器上的页面没有问题,并且经过负载均衡这个传递过程后,页面也没有问题(见图3)。

图3 首页发布流程优化二

但是,Web服务器有20台,加上负载均衡这个节点,如果一一检查确认的话,工作量很大,发布时效必将不能满足要求,因此,必须减少编辑需要审看的节点。

1.3 首页发布流程优化三

为了确保发布时效,就必须减少编辑查看节点的数量,即上述方案中的Web服务器数量。

极端情况,如果Web服务器只有1台,则可以确保无论编辑审看,还是CDN发布,内容都来自这一台机器。但是,因为单台服务器的不可靠性,因此,考虑使用2台Web服务器是否能够满足实际使用要求(见图4)。

图4 首页发布流程优化三

将Web服务器缩减至2台,如果能够满足全站的载荷需求,那么方案三已经能够满足加强首页安全的要求。

但是,大型网站的CDN更新时对于Web服务器的并发连接数要求,远远大于2台Web服务器的接入能力。因此,实际使用中,并不能简单地缩减Web服务器数量。

1.4 首页发布流程优化四——最终方案

既要保证全站Web服务器资源满足CDN刷新连接数的要求,又要保证编辑检查的页面尽可能少,可以考虑首页独立使用2台Web服务器,其他页面共用其余更多的Web服务器(见图5)。

图5 首页发布流程优化四

要做到首页Web服务器独立,就需要:

(1)将首页的资源和其他页面资源完全独立,以便CDN能够使用特定路径针对首页制定独立的刷新规则;

(2)验证2台Web服务器是否能够承接首页刷新的连接数要求。也就是说,手动刷新首页机制下,对于服务器的并发连接数峰值是否在2台Web服务器的连接处理能力内。

实际上,采用手动刷新CDN首页方式时,每次需要建立的连接,主要是用于获取首页的index文件,并以index文件为入口,进而对里面的因资源更新而产生的连接(如果是之前已有的旧资源,CDN不会去建立连接获取)。考虑到首页本身的资源量非常有限,并且每次发生变更的资源数量有限,2台Web服务器完全能够满足要求。

以某政府网站为例,在浏览器获取首页时,资源请求连接数为150。在此基础上,对于CDN刷新来讲,考虑到每次更新首页的资源变更有限,其对服务器的实际请求连接数要远小于150。

在新增两台独立Web服务器的情况下,为了最大限度确保编辑从负载均衡获取到的预览页面和CDN从负载均衡获取到的分发页面来自同一台服务器,可调整两台服务器在负载上的命中比例为极大值,本例中为16:1,则被检验页面和CDN分发页面来自同一台机器的比例可以达到94.5%(1-16/17*1/17≈94.5%)。因此,权衡工作量和出错概率,基本可以认为从负载均衡得到的预览页面和CDN分发页面来自同一台机器,只需从负载均衡预览检验页面内容,不必单独检验两台Web服务器上的内容。

2 结论

本方案针对网站重要页面,将现有发布机制中内容预览环节后置到网络分发前,确保了CDN获取并分发的页面一定是经过编辑确认后的内容,即使在前面流程环节出现因编辑、传输、篡改而发生错误后,错误的内容也不会被发布。该方案仅增加一条新的独立发布链路,不改变和影响现有发布流程的技术架构,不增加编辑工作量,有效提高了重要页面发布内容的正确性。

[1]李乔,何慧,张宏莉. 内容分发网络研究[J].电子学报, 2013(08):106-114.

[2]张建超,张连堂. 网站架构演变技术研究[J]. 现代计算机:专业版,2012(04):55-57.

[3]韩强. 内容分发网络技术(CDN)简析[J].中国传媒科技,2006(4):19-22.

猜你喜欢
预览页面服务器
刷新生活的页面
答案
新品预览
让Word同时拥有横向页和纵向页
PowerTCP Server Tool
BlackJumboDog
2018年全球服务器市场将保持温和增长
11月在拍电视剧预览表
bauma China 2014展前预览
用独立服务器的站长注意了