网页安全防护方法与流程

文档序号:18741452发布日期:2019-09-21 01:49阅读:705来源:国知局
网页安全防护方法与流程

本发明涉及计算机技术领域,更具体地,涉及一种网页安全防护方法。



背景技术:

随着互联网、云计算和移动计算的高速发展,每天都会新增海量的网页。随之而来的,利用网页威胁互联网和计算机安全的事件也在增加。黑客等人员会利用网页中的元素、脚本和漏洞等威胁互联网和计算机安全。例如,网络爬虫使用XPath对页面中的元素等进行定位,从而利用某一或某些元素实施网络攻击。

目前,出现了很多网页防护方法,通过对网页进行防护以减少网站的安全风险。通过网关对URL(统一资源定位符,Uniform Resource Locator)进行加密的方法能避免非法访问,但需要在网关处设置,不适用于大规模的提供网络服务,而且解决效率还有待考量,通用性较差。通过内容分发网络系统从携带加密后的统一资源定位符的资源请求中还原出统一资源定位符的方法能屏蔽非法网页,但只能拦截非法的资源请求,适用范围较窄。通过将服务器端PHP程序包含FORM表单的网页进行参数名置乱,具有一定的干扰表单字段的效果,但容易被绕过,攻击者仍能较易的采用其他定位方法定位,且需要修改服务器上的网页,不容易实现,适用性差。综上所述,现有种网页安全防护方法都存在适用范围有限的不足。



技术实现要素:

本发明实施例提供一种网页安全防护方法,用以解决或者至少部分地解决现有技术适用范围有限的缺陷。

第一方面,本发明实施例提供一种网页安全防护方法,包括:

接收服务端发送的原始页面;

对所述原始页面中的各第一目标元素的属性值进行随机化处理,根据各所述第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将所述JavaScript脚本注入所述原始页面中,生成中间页面;

将所述中间页面发送至客户端,以使得所述客户端通过解析所述中间页面加载出所述原始页面;

其中,所述第一目标元素为静态元素。

第二方面,本发明实施例提供一种网页安全防护方法,包括:

接收服务端发送的原始页面;

根据所述原始页面中的各第三目标元素的信息生成JavaScript脚本,将所述JavaScript脚本注入所述原始页面中,生成中间页面;

将所述中间页面发送至客户端,以使得所述客户端通过解析所述中间页面对各所述第三目标元素的属性值进行随机化处理,并加载出所述原始页面;

其中,所述第三目标元素为动态生成的元素。

第三方面,本发明实施例提供一种网页安全防护方法,包括:

接收中间件代理装置发送的中间页面;

解析所述中间页面,运行被注入所述中间页面中的JavaScript脚本;

渲染每一第一目标元素时,根据所述JavaScript脚本还原出所述第一目标元素的属性值,加载出原始页面;

其中,所述中间页面,是所述中间件代理装置对所述原始页面中的各所述第一目标元素的属性值进行随机化处理,根据各所述第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将所述JavaScript脚本注入所述原始页面中生成的;所述第一目标元素为静态元素。

第四方面,本发明实施例提供一种网页安全防护方法,包括:

接收中间件代理装置发送的中间页面;

解析所述中间页面,运行被注入所述中间页面中的JavaScript脚本,以使得生成每一第三目标元素时,将随机生成的字符串作为随机化处理之后的所述第三目标元素的属性值;

渲染每一所述第三目标元素时,将所述随机生成的字符串,替换为运行所述中间页面中用于生成所述第三目标元素的JavaScript代码获得的属性值,加载出原始页面;

其中,所述中间页面,是所述中间件代理装置根据所述原始页面中的各所述第三目标元素的信息生成JavaScript脚本,将所述JavaScript脚本注入所述原始页面中生成的;所述第三目标元素为动态生成的元素。

第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,执行所述程序时实现如第一方面至第四方面的各种可能的实现方式中任一种可能的实现方式所提供的网页安全防护方法的步骤。

第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面至第四方面的各种可能的实现方式中任一种可能的实现方式所提供的网页安全防护方法的步骤。

本发明实施例提供的网页安全防护方法,通过对中间件代理装置对原始页面中目标元素的属性值进行随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例提供的网页安全防护方法的流程示意图;

图2为根据本发明实施例提供的网页安全防护方法的流程示意图;

图3为根据本发明实施例提供的网页安全防护方法的流程示意图;

图4为根据本发明实施例提供的网页安全防护方法的流程示意图;

图5为根据本发明实施例提供的网页安全防护装置的结构示意图;

图6为根据本发明实施例提供的网页安全防护装置的结构示意图;

图7为根据本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了克服现有技术的上述问题,本发明实施例提供一种网页安全防护方法,其发明构思是,通过中间件代理装置实现对服务器发送的原始页面中的部分或全部元素的属性值进行随机化处理,网页在攻击者面前展示的元素属性值是随机化后的值,攻击者根据XPath定位页面元素的方式无法正常工作,从而达到防护网页及网站安全的目的。

图1为根据本发明实施例提供的网页安全防护方法的流程示意图。如图1所示,该方法包括:步骤S101、接收服务端发送的原始页面。

需要说明的是,本发明实施例的执行主体为中间件代理装置。

当不存在中间件代理装置时,客户端加载页面的步骤包括:用户通过客户端的浏览器输入网址后,客户端通过浏览器向服务端发送获取该网址对应的网页的请求;服务端接收该请求后,向客户端返回所请求的网页(原始页面);客户端通过浏览器对该网页进行加载。

当存在中间件代理装置时,客户端加载页面的步骤中,客户端发送的获取该网址对应的网页的请求,通过中间件代理装置转发至服务端;服务端返回的所请求的网页,通过中间件代理装置转发至客户端;其他步骤与不存在中间件代理装置时相同,此处不再赘述。

中间件代理装置,可以是内容分发网络(Content Delivery Network,CDN)或防火墙等可以对页面进行处理的装置,该装置位于客户端与服务端之间。

可以理解的是,步骤S101之前还包括:接收客户端发送的页面获取请求,将该页面获取请求转发至服务端。

页面获取请求,携带原始页面的网址。

客户端向中间件代理装置发送页面获取请求,中间件代理装置将该页面获取请求转发至服务端,服务端根据该页面获取请求向中间件代理装置返回原始页面,中间件代理装置接收服务端返回的原始页面。

步骤S102、对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面。

其中,第一目标元素为静态元素。

具体地,可以通过对静态元素的属性值进行随机化的方式实现对网页的安全防护。

可以理解的是,任一页面均包括若干个静态元素和若干个动态生成的元素。元素的属性值为具有一定含义的字符串。

第一目标元素可以是预先确定的。可以理解的是,步骤S101与步骤S102之间还包括,获取该原始页面中需要随机化处理的各元素。该原始页面中需要随机化处理的各静态元素,即各第一目标元素。

对于任一第一目标元素,服务端返回原始页面时,该元素已经生成,该元素的属性值也已经确定。

需要说明的是,对原始页面中的各第一目标元素的属性值进行随机化处理之前,可以先将原始页面解析生文档对象模型(Document Object Model,DOM),以便对原始页面中的元素进行遍历,确定各第一目标元素的位置。

对于原始页面中的每一第一目标元素,可以根据该元素的位置获取该元素的属性值,对该元素的属性值进行随机化处理,将该元素的属性值转换成随机生成的字符串,作为该元素随机化处理之后的属性值。

对各第一目标元素的属性值进行随机化处理之后,可以将各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,转换成JavaScript脚本。

JavaScript脚本可以包括两部分:一部分是各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,另一部分用于修复页面,即对随机化处理后的属性值进行还原。其中,对于静态元素,将映射关系插入到JavaScript脚本中,告知客户端根据上述映射关系进行修复;修复页面的脚本是预先编写好的固定脚本,只需要知道映射关系就能进行修复。

生成该JavaScript脚本之后,将该JavaScript脚本注入原始页面中,且原始页面中各第一目标元素的属性值已被替换为随机化处理之后的属性值,从而可以得到中间页面。

步骤S103、将中间页面发送至客户端,以使得客户端通过解析中间页面加载出原始页面。

具体地,对原始页面进行处理生成中间页面之后,将中间页面发送至客户端。

由于中间页面中注入的JavaScript脚本携带了各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,客户端接收中间页面之后,通过浏览器对中间页面进行解析时,可以根据中间页面中注入的JavaScript脚本,对中间页面的DOM API进行劫持,在渲染每一第一目标元素时,对随机化处理之后的该第一目标元素的属性值进行还原,从而可以加载出原始页面,原始页面正常能够显示,不受元素属性随机化的影响,不影响视觉效果。

对中间页面的DOM API进行劫持,具体可以对元素选择函数API进行劫持,例如可以根据用于选择元素ID的getElementById函数,让被随机化后的元素属性能够恢复,不影响正常解析功能。

本发明实施例通过对中间件代理装置对原始页面中静态的第一目标元素的属性值进行随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;根据随机化处理前后的属性值之间的映射关系生成JavaScript脚本,通过JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

基于上述各实施例的内容,接收服务端发送的原始页面,与生成中间页面之间,还包括:根据预设的加密算法对每一第二目标元素的统一资源标识符进行加密。

其中,第二目标元素为引用外部资源的静态元素。

具体地,为了进一步对网页进行安全防护,提高网页及网站的安全性,还可以根据预设的加密算法对原始页面中的各第二目标元素的统一资源标识符进行加密,将每一第二目标元素的统一资源标识符替换为加密后的统一资源标识符。

统一资源标识符(Uniform Resource Identifier,URI)是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。Web上可用的每种资源,例如HTML文档、图像、视频片段、程序等,均可以由一个URI进行定位。

可以理解的是,中间页面中各第二目标元素的统一资源标识符,均为加密后的统一资源标识符。

第二目标元素,可以为引用外部表单、图片、视频、的程序等资源的静态元素。

表单可以包括层叠样式表(Cascading Style Sheets,CSS)表单。

每一第二目标元素所引用的外部资源,可以从服务端获取。

相应地,将中间页面发送至客户端之后还包括:接收客户端发送的第一资源获取请求。

其中,第一资源获取请求,携带任一第二目标元素加密后的统一资源标识符。

具体地,将中间页面发送至客户端之后,客户端通过浏览器对中间页面进行解析时,对于每一第二目标元素,需要获取该元素引用的外部资源,客户端生成第一资源获取请求。该第一资源获取请求携带该第二目标元素加密后的统一资源标识符。该第一资源获取请求,用于从服务端获取该第二目标元素引用的外部资源。

客户端将该第一资源获取请求发送至中间件代理装置,中间件代理装置接收该第一资源获取请求。

根据预设的解密算法对资源获取请求携带的加密后的统一资源标识符进行解密。

具体地,中间件代理装置接收第一资源获取请求之后,根据预设的解密算法对该资源获取请求携带的某一第二目标元素加密后的统一资源标识符进行解密,解密出该第二目标元素的统一资源标识符,作为解密结果。

预设的解密算法,为预设的加密算法对应的解密算法。

根据解密结果,可以获得还原后的第一资源获取请求,该还原后的第一资源获取请求携带该第二目标元素的统一资源标识符。

中间件代理装置可以将还原后的第一资源获取请求发送至服务端。

根据解密结果从服务端获取资源,并转发至客户端。

具体地,服务端接收还原后的第一资源获取请求后,可以根据该还原后的第一资源获取请求携带的该第二目标元素的统一资源标识符,获取该第二目标元素引用的外部资源,并将该资源返回中间件代理装置。

中间件代理装置接收服务端根据还原后的第一资源获取请求返回的资源,从而实现根据解密结果从服务端获取资源。中间件代理装置接收该资源之后,将该资源转发至客户端,客户端可以加载该资源。

本发明实施例通过对静态的第二目标元素的统一资源标识符进行加密,能破坏攻击者对外部资源的获取,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

基于上述各实施例的内容,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本的具体步骤包括:根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,以及原始页面中的各第三目标元素的信息,生成JavaScript脚本。

其中,第三目标元素为动态生成的元素。

具体地,除了通过对静态元素的属性值进行随机化的方式实现对网页的安全防护之外,还可以通过对动态生成的元素的属性值进行随机化的方式进一步加强对网页的安全防护。

需要说明的是,动态生成的元素,是客户端通过浏览器解析页面是生成的。

第三目标元素可以是预先确定的。可以理解的是,步骤S101与步骤S102之间还包括,获取该原始页面中需要随机化处理的各元素。该原始页面中需要随机化处理的各动态生成的元素,即各第三目标元素。

为了对各第三目标元素的属性值进行随机化处理,生成JavaScript脚本时,除了需要对各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系进行转换之外,还需要将原始页面中的各第三目标元素的信息进行转换。

可以理解的是,由于生成中间页面时未对原始页面中的各第三目标元素进行处理,原始页面中的每一第三目标元素即中间页面中的该第三目标元素,原始页面中用于生成每一第三目标元素的JavaScript代码即中间页面中用于生成该第三目标元素的JavaScript代码。

由于中间页面中注入的JavaScript脚本携带了各第三目标元素的信息,客户端接收中间页面之后,通过浏览器对中间页面进行解析时,可以根据中间页面中注入的JavaScript脚本,获取各第三目标元素的信息。

对于中间页面中的每一第三目标元素,可以根据该元素的位置,生成该元素,并对中间页面的DOM API进行劫持,具体对该元素的属性值赋值进行劫持,将一串随机生成的字符串作为该第三目标元素随机化处理之后的属性值。

由于第三目标元素的属性值进行了随机化处理,攻击者无法通过Xpath匹配到随机生成的字符串,从而能破坏攻击者对第三目标元素的定位。

在渲染每一第三目标元素时,根据中间页面中用于生成该第三目标元素的JavaScript代码,对随机化处理之后的该第一目标元素的属性值进行还原,从而可以加载出原始页面,原始页面正常能够显示,不受元素属性随机化的影响,不影响视觉效果。

本发明实施例通过对中间件代理装置生成携带各第三目标元素的信息的JavaScript脚本,通过JavaScript脚本使得客户端能实现对动态生成的第三目标元素的属性值的随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;通过JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

基于上述各实施例的内容,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,以及原始页面中的各第三目标元素的信息,生成JavaScript脚本的具体步骤包括:根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,原始页面中的各第三目标元素的信息和客户端需要根据预设的加密算法对统一资源标识符进行加密的各第四目标元素的信息,生成JavaScript脚本。

其中,第四目标元素为引用外部资源的动态生成的元素。

具体地,为了进一步对网页进行安全防护,提高网页及网站的安全性,生成JavaScript脚本时,除了需要对各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系进行转换,以及将原始页面中的各第三目标元素的信息进行转换之外,还需要将原始页面中的各第四目标元素的信息进行转换。

可以理解的是,由于生成中间页面时未对原始页面中的各第四目标元素进行处理,原始页面中的每一第四目标元素即中间页面中的该第四目标元素。

预设的加密算法,可以包含在JavaScript脚本中。客户端通过运行JavaScript脚本,可以根据预设的加密算法对中间页面中的各第四目标元素的统一资源标识符进行加密,将每一第四目标元素的统一资源标识符替换为加密后的统一资源标识符。

对第四目标元素的统一资源标识符进行加密使用的预设的加密算法,可以与对第二目标元素的统一资源标识符进行加密使用的预设的加密算法相同。

第四目标元素,可以为引用外部表单、图片、视频、的程序等资源的动态生成的元素。

表单可以包括层叠样式表(Cascading Style Sheets,CSS)表单。

每一第四目标元素所引用的外部资源,可以从服务端获取。

相应地,将中间页面发送至客户端之后还包括:接收客户端发送的第二资源获取请求。

其中,第二资源获取请求,携带任一第四目标元素加密后的统一资源标识符。

具体地,将中间页面发送至客户端之后,客户端通过浏览器对中间页面进行解析时,对于每一第四目标元素,需要获取该元素引用的外部资源,客户端生成第二资源获取请求。该第二资源获取请求携带该第四目标元素加密后的统一资源标识符。该第二资源获取请求,用于从服务端获取该第四目标元素引用的外部资源。

客户端将该第二资源获取请求发送至中间件代理装置,中间件代理装置接收该第二资源获取请求。

根据预设的解密算法对第二资源获取请求携带的加密后的统一资源标识符进行解密。

具体地,中间件代理装置接收第二资源获取请求之后,根据预设的解密算法对该资源获取请求携带的某一第四目标元素加密后的统一资源标识符进行解密,解密出该第四目标元素的统一资源标识符,作为解密结果。

预设的解密算法,为预设的加密算法对应的解密算法。

根据解密结果,可以获得还原后的第二资源获取请求,该还原后的第二资源获取请求携带该第四目标元素的统一资源标识符。

中间件代理装置可以将还原后的第二资源获取请求发送至服务端。

根据解密结果从服务端获取资源,并转发至客户端。

具体地,服务端接收还原后的第二资源获取请求后,可以根据该还原后的第二资源获取请求携带的该第四目标元素的统一资源标识符,获取该第四目标元素引用的外部资源,并将该资源返回中间件代理装置。

中间件代理装置接收服务端根据还原后的第二资源获取请求返回的资源,从而实现根据解密结果从服务端获取资源。中间件代理装置接收该资源之后,将该资源转发至客户端,客户端可以加载该资源。

本发明实施例通过对静态的第四目标元素的统一资源标识符进行加密,能破坏攻击者对外部资源的获取,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

图2为根据本发明实施例提供的网页安全防护方法的流程示意图。如图2所示,该方法包括:步骤S201、接收服务端发送的原始页面。

需要说明的是,本发明实施例的执行主体为中间件代理装置。

可以理解的是,步骤S201之前还包括:接收客户端发送的页面获取请求,将该页面获取请求转发至服务端。

页面获取请求,携带原始页面的网址。

客户端向中间件代理装置发送页面获取请求,中间件代理装置将该页面获取请求转发至服务端,服务端根据该页面获取请求向中间件代理装置返回原始页面,中间件代理装置接收服务端返回的原始页面。

步骤S202、根据原始页面中的各第三目标元素的信息生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面。

其中,第三目标元素为动态生成的元素。

具体地,可以通过对动态生成的元素的属性值进行随机化的方式实现对网页的安全防护。

需要说明的是,根据原始页面中的各第三目标元素的信息生成JavaScript脚本之前,可以先将原始页面解析生文档对象模型(Document Object Model,DOM),以便客户端对中间页面中的元素进行遍历,确定各第三目标元素的位置。

需要说明的是,动态生成的元素,是客户端通过浏览器解析页面是生成的。

第三目标元素可以是预先确定的。可以理解的是,步骤S201与步骤S202之间还包括,获取该原始页面中需要随机化处理的各元素。该原始页面中需要随机化处理的各动态生成的元素,即各第三目标元素。

为了对各第三目标元素的属性值进行随机化处理,将原始页面中的各第三目标元素的信息,转换成JavaScript脚本。

JavaScript脚本可以包括两部分:一部分是各第三目标元素的信息,另一部分用于修复页面,即对随机化处理后的属性值进行还原。其中,对于动态生成的元素,将各第三目标元素的信息插入到JavaScript脚本中,告知客户端修复各第三目标元素的属性值;修复页面的脚本是预先编写好的固定脚本。

生成该JavaScript脚本之后,将该JavaScript脚本注入原始页面中,从而可以得到中间页面。

步骤S203、将中间页面发送至客户端,以使得客户端通过解析中间页面对各第三目标元素的属性值进行随机化处理,并加载出原始页面。

具体地,对原始页面进行处理生成中间页面之后,将中间页面发送至客户端。

可以理解的是,由于生成中间页面时未对原始页面中的各第三目标元素进行处理,原始页面中的每一第三目标元素即中间页面中的该第三目标元素,原始页面中用于生成每一第三目标元素的JAVASCRIPT代码即中间页面中用于生成该第三目标元素的JAVASCRIPT代码。

由于中间页面中注入的JavaScript脚本携带了各第三目标元素的信息,客户端接收中间页面之后,通过浏览器对中间页面进行解析时,可以根据中间页面中注入的JavaScript脚本,获取各第三目标元素的信息。

对于中间页面中的每一第三目标元素,可以根据该元素的位置,生成该元素,并对中间页面的DOM API进行劫持,具体对该元素的属性值赋值进行劫持,将一串随机生成的字符串作为该第三目标元素随机化处理之后的属性值。

由于第三目标元素的属性值进行了随机化处理,攻击者无法通过Xpath匹配到随机生成的字符串,从而能破坏攻击者对第三目标元素的定位。

在渲染每一第三目标元素时,根据中间页面中用于生成该第三目标元素的JavaScript代码,对随机化处理之后的该第一目标元素的属性值进行还原,从而可以加载出原始页面,原始页面正常能够显示,不受元素属性随机化的影响,不影响视觉效果。

本发明实施例通过对中间件代理装置生成携带各第三目标元素的信息的JavaScript脚本,通过JavaScript脚本使得客户端能实现对动态生成的第三目标元素的属性值的随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;通过JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

基于上述各实施例的内容,根据原始页面中的各第三目标元素的信息生成JavaScript脚本的具体步骤包括:根据原始页面中的各第三目标元素的信息和客户端需要根据预设的加密算法对统一资源标识符进行加密的各第四目标元素的信息,生成JavaScript脚本。

其中,第四目标元素为引用外部资源的动态生成的元素。

具体地,为了进一步对网页进行安全防护,提高网页及网站的安全性,生成JavaScript脚本时,除了需要将原始页面中的各第三目标元素的信息进行转换之外,还需要将原始页面中的各第四目标元素的信息进行转换。

可以理解的是,由于生成中间页面时未对原始页面中的各第四目标元素进行处理,原始页面中的每一第四目标元素即中间页面中的该第四目标元素。

预设的加密算法,可以包含在JavaScript脚本中。客户端通过运行JavaScript脚本,可以根据预设的加密算法对中间页面中的各第四目标元素的统一资源标识符进行加密,将每一第四目标元素的统一资源标识符替换为加密后的统一资源标识符。

第四目标元素,可以为引用外部表单、图片、视频、的程序等资源的动态生成的元素。

表单可以包括层叠样式表(Cascading Style Sheets,CSS)表单。

每一第四目标元素所引用的外部资源,可以从服务端获取。

相应地,将中间页面发送至客户端之后还包括:接收客户端发送的第二资源获取请求。

其中,第二资源获取请求,携带任一第四目标元素加密后的统一资源标识符。

具体地,将中间页面发送至客户端之后,客户端通过浏览器对中间页面进行解析时,对于每一第四目标元素,需要获取该元素引用的外部资源,客户端生成第二资源获取请求。该第二资源获取请求携带该第四目标元素加密后的统一资源标识符。该第二资源获取请求,用于从服务端获取该第四目标元素引用的外部资源。

客户端将该第二资源获取请求发送至中间件代理装置,中间件代理装置接收该第二资源获取请求。

根据预设的解密算法对第二资源获取请求携带的加密后的统一资源标识符进行解密。

具体地,中间件代理装置接收第二资源获取请求之后,根据预设的解密算法对该资源获取请求携带的某一第四目标元素加密后的统一资源标识符进行解密,解密出该第四目标元素的统一资源标识符,作为解密结果。

预设的解密算法,为预设的加密算法对应的解密算法。

根据解密结果,可以获得还原后的第二资源获取请求,该还原后的第二资源获取请求携带该第四目标元素的统一资源标识符。

中间件代理装置可以将还原后的第二资源获取请求发送至服务端。

根据解密结果从服务端获取资源,并转发至客户端。

具体地,服务端接收还原后的第二资源获取请求后,可以根据该还原后的第二资源获取请求携带的该第四目标元素的统一资源标识符,获取该第四目标元素引用的外部资源,并将该资源返回中间件代理装置。

中间件代理装置接收服务端根据还原后的第二资源获取请求返回的资源,从而实现根据解密结果从服务端获取资源。中间件代理装置接收该资源之后,将该资源转发至客户端,客户端可以加载该资源。

本发明实施例通过对静态的第四目标元素的统一资源标识符进行加密,能破坏攻击者对外部资源的获取,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

图3为根据本发明实施例提供的网页安全防护方法的流程示意图。如图3所示,该方法包括:步骤S301、接收中间件代理装置发送的中间页面。

其中,中间页面,是中间件代理装置对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中生成的;第一目标元素为静态元素。

需要说明的是,本发明实施例的执行主体为客户端。

可以理解的是,步骤S301之前还包括:向中间件代理装置发送页面获取请求。

中间件代理装置将该页面获取请求转发至服务端,服务端根据该页面获取请求向中间件代理装置返回原始页面,中间件代理装置接收服务端返回的原始页面。

中间件代理装置对于原始页面中的每一第一目标元素,可以根据该元素的位置获取该元素的属性值,对该元素的属性值进行随机化处理,将该元素的属性值转换成随机生成的字符串,作为该元素随机化处理之后的属性值。

中间件代理装置对各第一目标元素的属性值进行随机化处理之后,可以将各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,转换成JavaScript脚本。

中间件代理装置生成该JavaScript脚本之后,将该JavaScript脚本注入原始页面中,且原始页面中各第一目标元素的属性值已被替换为随机化处理之后的属性值,从而可以得到中间页面。

中间件代理装置将中间页面发送至客户端,客户端接收中间页面。

步骤S302、解析中间页面,运行被注入中间页面中的JavaScript脚本。

具体地,客户端接收中间页面之后,对中间页面进行解析,首先运行被注入中间页面中的JavaScript脚本。

步骤S303、渲染每一第一目标元素时,根据JavaScript脚本还原出第一目标元素的属性值,加载出原始页面。

具体地,由于中间页面中注入的JavaScript脚本携带了各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系,客户端接收中间页面之后,通过浏览器对中间页面进行解析时,可以根据中间页面中注入的JavaScript脚本,对中间页面的DOM API进行劫持,在渲染每一第一目标元素时,对随机化处理之后的该第一目标元素的属性值进行还原,从而可以加载出原始页面,原始页面正常能够显示,不受元素属性随机化的影响,不影响视觉效果。

对中间页面的DOM API进行劫持,具体可以对元素选择函数API进行劫持,例如可以根据用于选择元素ID的getElementById函数,让被随机化后的元素属性能够恢复,不影响正常解析功能。

本发明实施例通过对中间件代理装置对原始页面中静态的第一目标元素的属性值进行随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;根据随机化处理前后的属性值之间的映射关系生成JavaScript脚本,通过JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

图4为根据本发明实施例提供的网页安全防护方法的流程示意图。如图4所示,该方法包括:

步骤S401、接收中间件代理装置发送的中间页面。

其中,中间页面,是中间件代理装置根据原始页面中的各第三目标元素的信息生成JavaScript脚本,将JavaScript脚本注入原始页面中生成的;第三目标元素为动态生成的元素。

需要说明的是,本发明实施例的执行主体为客户端。

可以理解的是,步骤S401之前还包括:向中间件代理装置发送页面获取请求。

中间件代理装置将该页面获取请求转发至服务端,服务端根据该页面获取请求向中间件代理装置返回原始页面,中间件代理装置接收服务端返回的原始页面。

为了对各第三目标元素的属性值进行随机化处理,中间件代理装置将原始页面中的各第三目标元素的信息,转换成JavaScript脚本。

中间件代理装置生成该JavaScript脚本之后,将该JavaScript脚本注入原始页面中,从而可以得到中间页面。

中间件代理装置将中间页面发送至客户端,客户端接收中间页面。

步骤S402、解析中间页面,运行被注入中间页面中的JavaScript脚本,以使得生成每一第三目标元素时,将随机生成的字符串作为随机化处理之后的第三目标元素的属性值。

具体地,客户端接收中间页面之后,对中间页面进行解析,首先运行被注入中间页面中的JavaScript脚本。

可以理解的是,由于生成中间页面时未对原始页面中的各第三目标元素进行处理,原始页面中的每一第三目标元素即中间页面中的该第三目标元素,原始页面中用于生成每一第三目标元素的JavaScript代码即中间页面中用于生成该第三目标元素的JavaScript代码。

由于中间页面中注入的JavaScript脚本携带了各第三目标元素的信息,客户端接收中间页面之后,通过浏览器对中间页面进行解析时,可以根据中间页面中注入的JavaScript脚本,获取各第三目标元素的信息。

对于中间页面中的每一第三目标元素,可以根据该元素的位置,生成该元素,并对中间页面的DOM API进行劫持,具体对该元素的属性值赋值进行劫持,将一串随机生成的字符串作为该第三目标元素随机化处理之后的属性值。

由于第三目标元素的属性值进行了随机化处理,攻击者无法通过Xpath匹配到随机生成的字符串,从而能破坏攻击者对第三目标元素的定位。

步骤S403、渲染每一第三目标元素时,将随机生成的字符串,替换为运行中间页面中用于生成第三目标元素的JavaScript代码获得的属性值,加载出原始页面。

具体地,在渲染每一第三目标元素时,根据中间页面中用于生成该第三目标元素的JavaScript代码,对随机化处理之后的该第一目标元素的属性值进行还原,从而可以加载出原始页面,原始页面正常能够显示,不受元素属性随机化的影响,不影响视觉效果。

本发明实施例通过对中间件代理装置生成携带各第三目标元素的信息的JavaScript脚本,通过JavaScript脚本使得客户端能实现对动态生成的第三目标元素的属性值的随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;通过JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

图5为根据本发明实施例提供的网页安全防护装置的结构示意图。基于上述各实施例的内容,如图5所示,该装置包括页面接收模块501、脚本生成模块502和页面转发模块503,其中:

页面接收模块501,用于接收服务端发送的原始页面;

脚本生成模块502,用于对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;

页面转发模块503,用于将中间页面发送至客户端,以使得客户端通过解析中间页面加载出原始页面;

其中,第一目标元素为静态元素。

需要说明的是,该装置可以为中间件代理装置,部署于中间件处。

在另一实施例中,页面接收模块501、脚本生成模块502和页面转发模块503的功能分别包括:

页面接收模块501,用于接收服务端发送的原始页面;

脚本生成模块502,用于根据原始页面中的各第三目标元素的信息生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;

页面转发模块503,用于将中间页面发送至客户端,以使得客户端通过解析中间页面对各第三目标元素的属性值进行随机化处理,并加载出原始页面;

其中,第三目标元素为动态生成的元素。

本发明实施例提供的网页安全防护装置,用于执行本发明上述各实施例提供的网页安全防护方法,该网页安全防护装置包括的各模块实现相应功能的具体方法和流程详见上述各网页安全防护方法的实施例,此处不再赘述。

该网页安全防护装置用于前述各实施例的网页安全防护方法。因此,在前述各实施例中的网页安全防护方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。

本发明实施例通过对中间件代理装置对原始页面中的目标元素的属性值进行随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;通过生成的JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

图6为根据本发明实施例提供的网页安全防护装置的结构示意图。基于上述各实施例的内容,如图6所示,该装置包括接收模块601、解析模块602和渲染模块603,其中:

接收模块601,用于接收中间件代理装置发送的中间页面;

解析模块602,用于解析中间页面,运行被注入中间页面中的JavaScript脚本;

渲染模块603,用于渲染每一第一目标元素时,根据JavaScript脚本还原出第一目标元素的属性值,加载出原始页面;

其中,中间页面,是中间件代理装置对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中生成的;第一目标元素为静态元素。

需要说明的是,该装置可以为客户端。

在另一实施例中,接收模块601、解析模块602和渲染模块603的功能分别包括:

接收模块601,用于接收中间件代理装置发送的中间页面;

解析模块602,用于解析中间页面,运行被注入中间页面中的JavaScript脚本,以使得生成每一第三目标元素时,将随机生成的字符串作为随机化处理之后的第三目标元素的属性值;

渲染模块603,用于渲染每一第三目标元素时,将随机生成的字符串,替换为运行中间页面中用于生成第三目标元素的JavaScript代码获得的属性值,加载出原始页面;

其中,中间页面,是中间件代理装置根据原始页面中的各第三目标元素的信息生成JavaScript脚本,将JavaScript脚本注入原始页面中生成的;第三目标元素为动态生成的元素。

本发明实施例提供的网页安全防护装置,用于执行本发明上述各实施例提供的网页安全防护方法,该网页安全防护装置包括的各模块实现相应功能的具体方法和流程详见上述各网页安全防护方法的实施例,此处不再赘述。

该网页安全防护装置用于前述各实施例的网页安全防护方法。因此,在前述各实施例中的网页安全防护方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。

本发明实施例通过对中间件代理装置对原始页面中的目标元素的属性值进行随机化,能破坏攻击者对元素的定位,从而能防护网页及网站安全、提高网页及网站的安全性,不需要服务器对网站内容进行更改,适用性更好;通过生成的JavaScript脚本控制原始页面能够正常显示,不影响视觉效果。进一步地,主要通过中间件代理装置实现,不需要服务器对网站内容进行更改,便于大规模部署和推广,尤其适用于对难以进行修改的老旧页面进行安全防护。

图7为根据本发明实施例提供的电子设备的结构框图。基于上述实施例的内容,如图7所示,该电子设备可以包括:处理器(processor)701、存储器(memory)702和总线703;其中,处理器701和存储器702通过总线703完成相互间的通信;处理器701用于调用存储在存储器702中并可在处理器701上运行的计算机程序指令,以执行上述各方法实施例所提供的网页安全防护方法,例如包括:接收服务端发送的原始页面;对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;将中间页面发送至客户端,以使得客户端通过解析中间页面加载出原始页面;或者包括:接收服务端发送的原始页面;根据原始页面中的各第三目标元素的信息生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;将中间页面发送至客户端,以使得客户端通过解析中间页面对各第三目标元素的属性值进行随机化处理,并加载出原始页面。

本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的网页安全防护方法,例如包括:接收服务端发送的原始页面;对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;将中间页面发送至客户端,以使得客户端通过解析中间页面加载出原始页面;或者包括:接收服务端发送的原始页面;根据原始页面中的各第三目标元素的信息生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;将中间页面发送至客户端,以使得客户端通过解析中间页面对各第三目标元素的属性值进行随机化处理,并加载出原始页面。

此外,上述的存储器702中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的网页安全防护方法,例如包括:接收服务端发送的原始页面;对原始页面中的各第一目标元素的属性值进行随机化处理,根据各第一目标元素随机化处理之前的属性值与随机化处理之后的属性值之间的映射关系生成JavaScript脚本,将JavaScript脚本注入原始页面中,生成中间页面;将中间页面发送至客户端,以使得客户端通过解析中间页面加载出原始页面。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行上述各个实施例或者实施例的某些部分的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1