网络攻击防御方法及相关设备与流程

文档序号:16926352发布日期:2019-02-22 19:54阅读:230来源:国知局
网络攻击防御方法及相关设备与流程

本申请涉及网络安全技术领域,更具体地,是网络攻击防御方法及相关设备。



背景技术:

随着互联网的快速发展,网络服务系统给政府、企业及个人提供信息交流的平台,这个平台汇集了海量价值信息。互联网在给人们带来便捷的同时,也给人们带来了巨大的挑战。

目前,网络服务系统趋向于复杂化,漏洞也越来越多,攻击者可以采用的攻击方式也越来越多,具体采用的一种攻击方式是在服务器生成页面之后植入恶意代码,植入的恶意代码发送至客户端后,对客户端产生攻击行为。

现有技术中,针对网络攻击的解决方案是基于脚本语言的恶意代码检测技术,针对恶意脚本语言代码的静态特征和动态特征,利用机器学习的相关知识,检测代码是否具有恶意性,该方法的应用技术较为成熟,但不能够全面检测到攻击者植入到页面中的恶意代码。



技术实现要素:

有鉴于此,本申请提供了一种网络攻击防御方法。另外,本申请还提供了网络攻击防御相关设备,用以保证所述方法在实际中的应用及实现。

为实现所述目的,本申请提供的技术方案如下:

第一方面,本发明提供了一种网络攻击防御方法,应用于服务器,该方法包括:

接收到浏览器发送的页面访问请求后,获得所述页面访问请求对应的原始页面,其中所述原始页面的所有代码块均包含有标签属性;

生成目标属性值;

为各个所述标签属性均添加所述目标属性值,以得到目标页面;

在将所述目标页面返回所述浏览器之前,判断所述目标页面的代码块的标签属性的属性值与所述目标属性值是否一致;

若所有代码块的标签属性的属性值与所述目标属性值均一致,则将所述目标页面返回至所述浏览器;

若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为,禁止将所述目标页面返回至所述浏览器。

第二方面,本发明提供了一种网络攻击防御方法,应用于浏览器,该方法包括:

发送页面访问请求,以触发服务器获得所述页面访问请求对应的原始页面并为所述原始页面中所有代码块包含的标签属性添加目标属性值以得到目标页面;

获取所述浏览器生成的目标属性值;其中所述浏览器生成的目标属性值与所述服务器生成的目标属性值相同;

接收所述服务器返回的所述目标页面;

判断所述目标页面中代码块的标签属性的属性值与所述浏览器生成的目标属性值是否一致;

若所有代码块的标签属性的属性值与所述目标属性值均一致,则执行所述目标页面;

若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为。

第三方面,本发明提供了一种网络攻击防御装置,应用于服务器,该装置包括:

访问模块,用于接收到浏览器发送的页面访问请求后,获得所述页面访问请求对应的原始页面,其中所述原始页面的所有代码块均包含有标签属性;

生成模块,用于生成目标属性值;

添加属性模块,用于为各个所述标签属性均添加所述目标属性值,以得到目标页面;

属性值判断模块,用于在将所述目标页面返回所述浏览器之前,判断所述目标页面的代码块的标签属性的属性值与所述目标属性值是否一致;

页面返回模块,用于若所有代码块的标签属性的属性值与所述目标属性值均一致,则将所述目标页面返回至所述浏览器;

禁止页面返回模块,用于若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为,禁止将所述目标页面返回至所述浏览器。

第四方面,本发明提供了一种网络攻击防御装置,应用于浏览器,该装置包括:

发送访问请求模块,用于发送页面访问请求,以触发服务器获得所述页面访问请求对应的原始页面并为所述原始页面中所有代码块包含的标签属性添加目标属性值以得到目标页面;

属性值获取模块,用于获取所述浏览器生成的目标属性值;其中所述浏览器生成的目标属性值与所述服务器生成的目标属性值相同;

接收页面模块,用于接收所述服务器返回的所述目标页面;

属性值判断模块,用于判断所述目标页面中代码块的标签属性的属性值与所述浏览器生成的目标属性值是否一致;

执行页面模块,用于若所有代码块的标签属性的属性值与所述目标属性值均一致,则执行所述目标页面;

页面确定模块,用于若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为。

第五方面,本发明提供了一种网络攻击防御系统,包括:客户端及服务器;

客户端,用于向服务器发送页面访问请求;与服务器之间进行时间同步,以协商相同的目标时间点;使用所述目标时间点生成目标属性值;接收所述服务器返回的所述目标页面;判断所述目标页面中代码块的标签属性的属性值与所述目标属性值是否一致;若所有代码块的标签属性的属性值与所述目标属性值均一致,则执行所述目标页面;若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为;

服务器,用于接收到客户端发送的页面访问请求后,获得所述页面访问请求对应的原始页面;与客户端之间进行时间同步,以协商相同的目标时间点;使用所述目标时间点生成目标属性值,并为所述原始页面的所有代码块中的标签属性均添加所述目标属性值,以得到目标页面;在将所述目标页面返回所述客户端之前,判断所述目标页面的代码块的标签属性的属性值与所述目标属性值是否一致;若所有代码块的标签属性的属性值与所述目标属性值均一致,则将所述目标页面返回至所述客户端;若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为,禁止将所述目标页面返回至所述客户端。

第六方面,本发明提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述权利要求上述的网络攻击防御方法。

由以上技术方案可以看出,本申请提供了一种网络攻击防御方法,该方法中服务器在接收到浏览器发送的页面访问请求后,获得页面访问请求对应的原始页面,原始页面的所有代码块均包含有标签属性;服务器生成目标属性值并将其赋予所有标签属性,以得到目标页面;服务器在将目标页面返回浏览器之前,判断目标页面所有代码块的标签属性的属性值与目标属性值是否一致;如果是,则将目标页面返回浏览器,如果任一代码块标签属性的属性值与目标属性值不一致,则确定存在对目标页面的网络攻击行为,并禁止将目标页面返回浏览器。与现有技术相比,服务器并非根据恶意代码的特征进行检测,而是为所有代码块添加预先生成的目标属性值,只要代码块没有包含该目标属性值便可以确定存在网络攻击行为,检测覆盖更全面且方式更简单。

附图说明

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

图1为网络攻击防御方法的一个流程图;

图2为网络攻击防御方法的另一流程图;

图3为网络攻击防御系统的一个结构示意图;

图4为应用在服务器上的网络攻击防御装置的一个结构示意图;

图5为应用在浏览器上的网络攻击防御装置的一个结构示意图。

具体实施方式

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

用户可以通过浏览器向服务器发出访问页面的请求,服务器接收到访问页面的请求后,获得访问请求对应的页面并将页面返回给浏览器,浏览器接收到页面后执行页面,以将页面展示给用户。在该访问过程中,攻击者可能对页面进行网络攻击。

本申请中的网络攻击,具体的攻击方式是在服务器生成页面之后植入恶意代码,植入的恶意代码发送至客户端后,对客户端产生攻击行为。当然,网络攻击的具体方式有多种,本申请并不一一赘述。需要说明的是,网络攻击的本质实现是要在服务器返回给浏览器的页面中植入恶意代码,本申请的发明目的是,全面检索页面中的恶意代码。

见图1,其示出了网络攻击防御方法的一种流程示意。如图1所示,该方法可以具体包括步骤s101~步骤s106。

s101:浏览器向服务器发送页面访问请求。

用户打开浏览器点击页面链接时,浏览器向服务器发送页面访问请求。该页面访问请求会触发服务器获得原始页面,例如用户需要打开爱奇艺视频官方页面观看视频时,通过打开浏览器,在浏览器的首页点击爱奇艺链接时,浏览器向服务器发送爱奇艺官方视频页面的请求,触发服务器获得爱奇艺官方视频页面对应的原始页面。

s102:服务器获得与页面访问请求对应的原始页面;其中原始页面的所有代码块均包含有标签属性。

其中,接收到浏览器发送的页面访问请求后,在预先存储的原始页面中查找与该页面访问请求对应的原始页面。

原始页面由代码块组成,代码块可以认为是具有标签的页面元素。每个代码块包含有标签属性,也就是说每个标签内都包含有标签属性。例如,原始页面中存在<script>标签、<head>标签、图片元素标签等等类型的标签,遍历原始页面中所有代码块以找到<script>标签、<head>标签、图片元素标签等所有的标签,然后为这些标签添加标签属性。

需要说明的是,标签属性预先设置在原始页面中,该标签属性为自定义的标签属性,用于判断代码块是否为攻击者添加入原始页面中的代码块。该标签属性可以称为token-id,当然也可以命名为其他名称。

本步骤获得的原始页面中包含有标签属性,标签属性的生成方式可以有多种。

一种生成方式为,在向生产环境部署所述原始页面之前,在所述原始页面的所有代码块中添加标签属性。

具体地,开发人员在编写完原始页面的代码块后,需要对原始页面的代码块进行测试,通过测试后才可以向服务器的生产环境进行部署。在向生产环境部署之前,开发人员并不会再向原始页面中添加代码,这个时间点之前是安全周期,因此在安全周期内对原始页面的所有代码进行离线化分析,目的是遍历所有代码块中的标签,为这些标签添加标签属性,该标签属性可以命名为token-id。

将具有标签属性的原始页面部署生产环境,这样该原始页面就可以被客户端的浏览器访问,也就是说,服务器可以根据浏览器的页面访问请求来获得该原始页面。在本实现方式中,浏览器发送页面访问请求之前,原始页面中就包含有标签属性。

另一种生成方式为,在接收到浏览器发送的页面访问请求后,在所述原始页面的所有代码块中添加标签属性。在本实现方式中,服务器接收到浏览器发送的页面访问请求后,才在原始页面的代码块中添加标签属性。s103:服务器生成目标属性值并为各个标签属性均添加目标属性值,以得到目标页面。

其中,浏览器发出的页面访问请求除了可以触发服务器获得原始页面,还可以触发服务器为代码块的标签属性添加目标属性值。添加有目标属性值的原始页面可以称为目标页面。

服务器收到浏览器的页面访问请求后,可以生成属性值并为标签属性添加该属性值,其中为了与下文其他属性值区分,可以将服务器基于页面访问请求生成的该属性值称为目标属性值。每次服务器接收浏览器的页面访问请求时,服务器都会生成目标属性值。不同的页面访问请求,会触发服务器生成不同的目标属性值。

目标属性值的生成方式有多种。

一种生成方式是随机生成。具体地,服务器内可以预置多种加密算法,当服务器接收到页面访问请求时,随机调用一种加密算法生成目标属性值,加密算法使用的是随机函数生成目标属性值。

另一种生成方式是,将时间参数作为输入参数,对时间参数进行处理如哈希处理后,得到目标属性值。时间参数可以是服务器与浏览器所协商的一个时间点,该时间点可以称为目标时间点。具体的生成方式可以参见下述说明,此处并不赘述。

需要说明的是,服务器在得到目标页面后,目标页面可能遭受攻击从而被攻击者注入恶意代码,因此需要执行步骤s104的检测过程。

s104:在将所述目标页面返回所述浏览器之前,服务器判断目标页面的代码块的标签属性的属性值与目标属性值是否一致。若所有代码块的标签属性的属性值与目标属性值均一致,执行步骤s105;若任一代码块的标签属性的属性值与目标属性值不一致,执行步骤s106。

具体地,服务器为了保证返回给浏览器的页面是没有被攻击的页面,在将目标页面返回浏览器之前,需要对目标页面进行安全检测。

检测内容是,判断目标页面中所有代码块的标签属性的属性值是否与生成的目标属性值一致。这样检测的原因是,攻击者可能会向目标页面中注入恶意代码,但恶意代码并不具有标签属性或者具有标签属性但标签属性的值并非服务器所生成的目标属性值,因此通过检测代码块的标签属性的属性值来检测目标页面是否安全。

至于攻击者为什么不能在恶意代码中添加标签属性及属性值,原因在于,攻击者并不能轻易确定出所添加的标签属性的名称是什么,即使能够确定出标签属性,但是由于服务器在生成目标属性值之后立即将该目标属性赋予目标页面的标签属性并将目标属性值销毁,这个过程用时非常短,攻击者很难找到时机窃取该目标属性值。因此,即使攻击者可以得到标签属性,但却不能获得目标属性值。

需要说明的是,如果判断过程中发现代码块没有标签属性,则认为标签属性的属性值为空,空的属性值与目标属性值不同也即可以表示标签属性的属性值与目标属性值不同。因此,本步骤中的判断隐含包括有两个判断内容,一是所有的代码块是否均具有标签属性,二是所有代码块的标签属性的属性值是否与目标属性值相同。只有在两个判断结果均为是的情况下,才认为最终的判断结果为是;任何一个判断结果为否,则认为最终的判断结果为否。

s105:服务器将目标页面返回至浏览器。

其中,如果服务器判断所有代码块的标签属性的属性值都与目标属性值相同,则确定目标页面为未遭受攻击的安全页面,进而将目标页面返回至浏览器。

s106:服务器确定存在对目标页面的网络攻击行为,禁止将目标页面返回至浏览器。

其中,只要存在任意一个代码块的标签属性的属性值与目标属性值不一致,服务器便可以确定存在对目标页面的网络攻击行为,进而禁止将目标页面返回浏览器。

由以上技术方案可知,本申请提供了一种网络攻击防御方法,该方法中服务器在接收到浏览器发送的页面访问请求后,获得页面访问请求对应的原始页面,原始页面的所有代码块均包含有标签属性;服务器生成目标属性值并将其赋予所有标签属性,以得到目标页面;服务器在将目标页面返回浏览器之前,判断目标页面所有代码块的标签属性的属性值与目标属性值是否一致;如果是,则将目标页面返回浏览器,如果任一代码块标签属性的属性值与目标属性值不一致,则确定存在对目标页面的网络攻击行为,并禁止将目标页面返回浏览器。与现有技术相比,服务器并非根据恶意代码的特征进行检测,而是为所有代码块添加预先生成的目标属性值,只要代码块没有包含该目标属性值便可以确定存在网络攻击行为,检测覆盖更全面且方式更简单。

以上发明实施例提供的网络攻击防御方法,服务器可以在将目标页面返回给浏览器之前进行检测,为了与下文浏览器的检测进行区分,可以将该检测称为第一检测。可以知道的是,攻击者除了可能攻击服务器,还可能在目标页面的传输过程中截取目标页面并向其中注入恶意代码。因此,浏览器也可以在执行目标页面之前进行安全检测,该检测过程可以称为第二检测。

需要说明的是,不管是服务器的第一检测还是浏览器的第二检测,检测思想是相同的,即都是判断目标页面中所有代码块的属性值是否与预先生成的目标属性值相同,通过判断结果可以确定目标页面是否遭受攻击,这种检测方式能对所有的代码块进行检测,避免现有技术中的漏检情况。

见图2,其示出了本申请实施例提供的另一种网络攻击防御方法。见图2,该方法可以具体包括步骤s201~步骤s208。

s201:浏览器向服务器发送页面访问请求。

s202:服务器获得与页面访问请求对应的原始页面;其中原始页面的所有代码块均包含有标签属性。

s203:服务器生成目标属性值并为各个标签属性均添加目标属性值,以得到目标页面。

以上步骤的说明可以参见上述实施例中的相关说明,此处并不赘述。

s204:服务器将目标页面返回浏览器。

s205:浏览器获取自身生成的目标属性值。

其中,浏览器自身也会生成目标属性值,需要说明的是,浏览器生成的目标属性值与所述服务器生成的目标属性值相同。两个目标属性值之所以需要相同,是因为浏览器获取目标属性值的目的是,使用该目标属性值对目标页面中代码块的属性值进行检验,目标页面中代码块的属性值是服务器所赋予目标属性值,因此浏览器需要使用相同的目标属性值对目标页面中代码块的属性值进行验证。

为了保证服务器与浏览器都生成相同的目标属性值,可以通过以下方式生成目标属性值:

浏览器与所述服务器之间进行时间同步,以协商相同的目标时间点;浏览器调用部署在所述浏览器上的事件发生器,以使所述浏览器上的事件发生器依据目标时间点生成所述目标属性值;服务器调用部署在服务器上的事件发生器,以使服务器上的事件发生器依据目标时间点生成目标属性值。

具体地,服务器接收到页面访问请求后,需要为标签属性生成目标属性值。在生成目标属性值之前,服务器与浏览器进行时间协商过程,以在两侧确定相同的一个时间点,该时间点用于作为时间参数生成目标属性值。为了便于描述,该时间点可以称为目标时间点。目标时间点为协商进行时的一个时间点,如协商完成后三秒的时间点,可见目标时间点是变化的,因此所生成的目标属性值也是变化的。

浏览器与服务器之间可以都部署有事件发生器,事件发生器是一段代码块,事件发生器内置有处理函数,用于将时间参数处理为目标属性值。浏览器与服务器使用相同的处理函数,对相同的目标时间点进行处理得到目标属性值,因此两侧生成的目标属性值是一致的。

需要说明的是,时间的协商过程也可以是由事件发生器执行的,即事件发生器可以进行时间同步。时间同步的方式类似于网络协议中的“三次握手”过程,此处并不赘述。

s206:浏览器判断目标页面中代码块的标签属性的属性值与浏览器生成的目标属性值是否一致。若所有代码块的标签属性的属性值与目标属性值均一致,执行步骤s207;若任一代码块的标签属性的属性值与目标属性值不一致,执行步骤s208。

其中,浏览器获得目标属性值后,可以使用与服务器相同的判断方法对目标页面中代码块的属性值进行判断。

s207:浏览器执行目标页面。

其中,浏览器若判断得出标签属性的属性值与目标属性值一致,说明代码块均是开发人员添加的,不存在攻击者添加的代码块,则浏览器确定该目标页面不存在网络攻击行为,进而浏览器向用户展示该目标页面。

s208:浏览器确定存在对目标页面的网络攻击行为。

具体地,浏览器检测到标签属性的属性值与目标属性值不一致,说明目标页面中存在攻击者添加的代码块,进而浏览器确定存在对目标页面的网络攻击行为。并且,为了防止存在网络攻击行为的目标页面对浏览器造成影响,可以禁止执行目标页面。

由以上技术方案可以看出,本申请提供了一种网络攻击防御方法,该方法中浏览器向服务器发出页面访问请求,服务器获得页面访问请求对应的原始页面并为原始页面的标签属性添加目标属性值以得到目标页面,服务器将目标页面返回浏览器,浏览器获得自身生成的目标属性值,该目标属性值与服务器生成的目标属性值相同,并判断目标页面的代码块的标签属性的属性值是否与浏览器自身生成的目标属性值是否一致,根据判断结果确定是否存在对目标页面的网络攻击行为。可见,该方法只要通过检测代码块的标签属性的属性值是否与目标属性值一致,便可以确定目标页面是否存在网络攻击行为,相对于现有技术而言不需要依赖于异常代码的特征,检测覆盖更全面且方式更简单。

需要说明的是,攻击者虽然不能从服务器端窃取到目标属性值,但可能在目标页面返回至浏览器的过程中窃取到目标属性值。攻击者此时窃取到的目标属性值已经不能作用于该目标属性值对应的目标页面,只能使用该目标属性值对服务器下次生成目标页面进行攻击,但是服务器下次生成目标页面时会生成新的目标属性值,因此即使攻击者将窃取到的目标属性值放入目标页面,放入的目标属性值与目标页面中的正常的目标属性值也是不同的,从而会被服务器或者浏览器检测出来。

网络攻击防御方法除了可以确定目标页面是否存在网络攻击行为,还可以识别出网络攻击行为对应的异常代码。

具体地,可以确定的是,目标页面中未包含标签属性的代码块及代码块中标签属性的属性值与预先定义的属性值不一致的代码块不是开发人员添加的,而是攻击者添加的,因此不管是服务器还是浏览器,只要确定存在对所述目标页面的网络攻击行为,都可以将所述代码块中标签属性的属性值与所述目标属性值不一致的代码块确定为异常代码。

进一步地,浏览器确定存在异常代码后,可以在执行目标页面时禁止异常代码的执行。并且,浏览器可以发送异常代码的相关信息至所述服务器。服务器接收所述浏览器返回的异常代码的相关信息,并根据所述相关信息,将所述异常代码从所述目标页面中删除。其中,异常代码的相关信息包括异常代码在目标页面中的位置。

一种具体的删除方式为,服务器接收异常代码的相关信息,复制目标页面得到复制页面,并根据异常代码的相关信息删除复制页面中的异常代码,并将目标页面替换为删除异常代码的复制页面。

本申请还提供一种网络攻击防御系统,该系统可以对目标页面进行两次验证。具体地,本申请提供了一种网络攻击防御系统,该系统具体包括客户端及服务器。

客户端,用于向服务器发送页面访问请求;与服务器之间进行时间同步,以协商相同的目标时间点;使用所述目标时间点生成目标属性值;接收所述服务器返回的所述目标页面;判断所述目标页面中代码块的标签属性的属性值与所述目标属性值是否一致;若所有代码块的标签属性的属性值与所述目标属性值均一致,则执行所述目标页面;若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为;

服务器,用于接收到客户端发送的页面访问请求后,获得所述页面访问请求对应的原始页面;与客户端之间进行时间同步,以协商相同的目标时间点;使用所述目标时间点生成目标属性值,并为所述原始页面的所有代码块中的标签属性均添加所述目标属性值,以得到目标页面;在将所述目标页面返回所述客户端之前,判断所述目标页面的代码块的标签属性的属性值与所述目标属性值是否一致;若所有代码块的标签属性的属性值与所述目标属性值均一致,则将所述目标页面返回至所述客户端;若任一代码块的标签属性的属性值与所述目标属性值不一致,则确定存在对所述目标页面的网络攻击行为,禁止将所述目标页面返回至所述客户端。

可见,该系统既可以检测发生在服务器上的网络攻击行为,也可以检测发生在目标页面传输过程中的网络攻击行为,检测更加全面。需要说明的是,该系统还可以按照上述方法确定出异常代码并对异常代码进行处理。

见图3,本申请提供了一种网络攻击防御系统的具体结构。客户端向服务器发送页面访问请求,服务器获得页面访问请求对应的原始页面。服务器与客户端上均部署有事件发生器,服务器在接收到页面访问请求后,需要调用事件发生器生成目标属性值。需要说明的是,两侧的事件发生器具有同步机制,两侧的事件发生器通过同步机制生成两个完全相同的目标属性值。

原始页面中每个代码块均包含有标签属性,服务器将目标属性值赋予每个标签属性,以得到目标页面。服务器在将目标页面返回客户端之前,使用目标属性值对目标页面进行判断,以判断目标页面中是否存在网络攻击行为,如果目标属性值与目标页面中每个代码块的标签属性的属性值相同,则将目标页面返回客户端,如果任一代码块的标签属性的属性值与目标属性值不同,则拒绝访问,即禁止将目标页面返回客户端。

目标页面到达客户端后,客户端按照同样的方式对目标页面进行判断。如果未检测到网络攻击行为,则将目标页面展示给用户;如果检测到网络攻击行为,则拒绝访问,即禁止将目标页面展示给用户。

针对本申请提供的网络攻击防御方法,进行以下几点说明。

第一,该方法在服务器和浏览器上的处理时间开销很低,并且不需要用户使用特定的浏览器或安装任何附加组件,环境依赖少,可移植性强。目标属性值的产生动态性极强,无论是利用站点内信任用户的xss(cross-sitescripting,跨站脚本攻击)攻击,还是通过伪装来自受信任用户请求来利用受信任网站的csrf(cross-siterequestforgery,跨站请求伪造)攻击都有明显的作用。

第二,本申请添加在目标页面中的标签属性由于添加在所有代码块上,因此可以称为全局属性。

见图4,其示出了本申请实施例提供的一种网络攻击防御装置,应用于服务器,该装置可以包括:访问模块401、生成模块402、添加属性模块403、属性值判定模块404、页面返回模块405及禁止页面返回模块406。

访问模块401,用于接收到浏览器发送的页面访问请求后,获得所述页面访问请求对应的原始页面,其中所述原始页面的所有代码块均包含有标签属性。

生成模块402,用于生成目标属性值。

添加属性模块403,用于为各个所述标签属性均添加所述目标属性值,以得到目标页面。

属性值判断模块404,用于在将所述目标页面返回所述浏览器之前,判断所述目标页面的代码块的标签属性的属性值与所述目标属性值是否一致。若所有代码块的标签属性的属性值与所述目标属性值均一致,则触发页面返回模块405;若任一代码块的标签属性的属性值与所述目标属性值不一致,则触发禁止页面返回模块406。

页面返回模块405,用于将所述目标页面返回至所述浏览器。

禁止页面返回模块406,用于确定存在对所述目标页面的网络攻击行为,禁止将所述目标页面返回至所述浏览器。

在一种实现方式中,访问模块401可以具体包括:添加属性子模块。

添加属性子模块,用于在向生产环境部署所述原始页面之前,在所述原始页面的所有代码块中添加标签属性;或,用于在接收到浏览器发送的页面访问请求后,在所述原始页面的所有代码块中添加标签属性。

在一种实现方式中,生成模块402可以具体包括:同步时间子模块,调用子模块。

同步时间子模块,用于与所述浏览器之间进行时间同步,以协商相同的目标时间点。

调用子模块,用于调用部署在所述服务器上的事件发生器,以使所述服务器上的事件发生器依据目标时间点生成所述目标属性值。

在一种实现方式中,禁止页面返回模块406还可以具体包括:确定异常子模块及删除子模块。

确定异常子模块,用于将所述代码块中标签属性的属性值与所述目标属性值不一致的代码块确定为异常代码。

第一删除子模块,用于将所述异常代码从所述目标页面中删除。

在一种实现方式中,页面返回模块405还可以具体包括:接收异常子模块,调用子模块。

第二删除子模块,用于根据所述相关信息,将所述异常代码从所述目标页面中删除。

见图5,其示出了本申请实施例提供的一种网络攻击防御装置,应用于浏览器,该装置包括:发送访问请求模块501、属性值获取模块502、接收页面模块503、属性值判定模块504、执行页面模块及页面确定模块505。

发送访问请求模块501,用于发送页面访问请求,以触发服务器获得所述页面访问请求对应的原始页面并为所述原始页面中所有代码块包含的标签属性添加目标属性值以得到目标页面。

属性值获取模块502,用于获取所述浏览器生成的目标属性值;其中所述浏览器生成的目标属性值与所述服务器生成的目标属性值相同。

接收页面模块503,用于接收所述服务器返回的所述目标页面。

属性值判断模块504,用于判断所述目标页面中代码块的标签属性的属性值与所述浏览器生成的目标属性值是否一致。若所有代码块的标签属性的属性值与所述目标属性值均一致,则触发执行页面模块505;若任一代码块的标签属性的属性值与所述目标属性值不一致,则触发页面确定模块506。

执行页面模块505,用于执行所述目标页面。

页面确定模块506,用于确定存在对所述目标页面的网络攻击行为。

在一种实现方式中,属性值获取模块502可以具体包括:同步时间子模块,调用子模块。

同步时间子模块,用于与所述服务器之间进行时间同步,以协商相同的目标时间点。

调用子模块,用于调用部署在所述浏览器上的事件发生器,以使所述浏览器上的事件发生器依据目标时间点生成所述目标属性值。

在一种实现方式中,属性值获取模块502可以具体包括:确定异常子模块及删除子模块。

确定异常子模块,用于将所述代码块中标签属性的属性值与所述目标属性值不一致的代码块确定为异常代码。

发送异常模块,用于发送所述异常代码的相关信息至所述服务器。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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