网页漏洞检测方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种网页漏洞检测方法和装置。
背景技术
目前,在进行网页漏洞检测时,主要采用以下两中可用的漏洞检测方案:
1,基于源码补丁,将Webkit官方的补丁代码移植到对应Android源码中,提供安全的Webkit内核。
虽然采用这种方式比较安全,制作补丁也比较快捷方便,然而,这种方式却无法及时更新,需要自带独立浏览器内核,同时会增大APP的存储体积,或刷ROM,不支持无法root的手机。
2,基于Hook技术热补丁,参照Webkit官方的补丁代码动态修补APP自身运行空间的Webkit内核,为APP提供安全的浏览器环境。
虽然采用这种方式能及时更新,不会额外增大APP的存储体积,且无需刷ROM,然而Webkit内核实现复杂,漏洞处代码未导出,位置无法动态定位,同时补丁代码难于脱离框架实现;由于未导出内核接口,也无法直接使用现有的内核架构编写补丁代码。
此外,采用现有的网页漏洞检测方案总是会有漏洞遗漏,检测出的漏洞并不全面,进一步,现有的方案都是针对底层源代码数据执行操作,当漏洞的类型改变时,并不便于针对不同的漏洞进行修改,因而,操作起来并不灵活。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种网页漏洞检测方法和装置,以至少解决采用现有的网页漏洞检测技术由于存在漏洞遗漏所导致的检测不全面的技术问题。
根据本发明实施例的一个方面,提供了一种网页漏洞检测方法,包括:获取待检测的网页数据;在上述待检测的网页数据中查找是否包括目标标签,其中,上述目标标签用于标识上述待检测的网页数据的起始加载位置;若查找出上述目标标签,则在上述网页数据中位于上述目标标签之后的位置上插入漏洞检测代码;在加载上述网页数据时运行上述漏洞检测代码;若通过运行上述漏洞检测代码检测出网页漏洞,则执行与上述网页漏洞对应的操作。
根据本发明实施例的另一方面,还提供了一种网页漏洞检测装置,包括:获取单元,用于获取待检测的网页数据;查找单元,用于在上述待检测的网页数据中查找是否包括目标标签,其中,上述目标标签用于标识上述待检测的网页数据的起始加载位置;第一插入单元,用于在查找出上述目标标签时,在上述网页数据中位于上述目标标签之后的位置上插入漏洞检测代码;运行单元,用于在加载上述网页数据时运行上述漏洞检测代码;操作单元,用于在通过运行上述漏洞检测代码检测出网页漏洞时,执行与上述网页漏洞对应的操作。
在本发明实施例中,通过本申请提供的实施例,通过在获取到的待检测的网页数据中查找是否包括目标标签,并在查找到相应的目标标签后,在网页数据中位于目标标签之后的位置插入漏洞检测代码,在加载网页数据时,利用位于起始加载位置的漏洞检测代码检测网页数据中存在的漏洞,实现了在加载的最开始插入漏洞检测代码,与漏洞形成一个级别对抗,保证了对漏洞的全面检测,避免个别遗漏漏洞,进一步,采用上述方案在加载的最开始改动漏洞检测代码,还可以实现针对不同漏洞的检测,进一步保证了漏洞检测的灵活性,进而解决了采用现有的网页漏洞检测技术由于存在漏洞遗漏所导致的检测不全面的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的网页漏洞检测方法的应用场景示意图;
图2是根据本发明实施例的一种可选的网页漏洞检测方法的流程示意图;
图3是根据本发明实施例的另一种可选的网页漏洞检测方法的流程示意图;
图4是根据本发明实施例的一种可选的网页漏洞检测方法中插入漏洞检测代码的示意图;
图5是根据本发明实施例的另一种可选的网页漏洞检测方法中插入漏洞检测代码的示意图;以及
图6是根据本发明实施例的一种可选的网页漏洞检测装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种网页漏洞检测方法的实施例,其中,上述网页漏洞检测方法可以但不限于应用于如图1所示的网络环境中,其中,上述网络环境中包括终端102及服务器104。可选地,在本实施例中,上述终端102可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、PC机。可选地,在本实施例中,上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。例如,在终端102上的浏览器中输入预定的统一资源定位URL(Uniform Resource Locator)地址,通过网络从相应的服务器104中获取对应的网页数据,并对上述网页数据进行漏洞检测。上述举例只是一种示例,本实施例对此不做任何限定。
根据本发明实施例,提供了一种网页漏洞检测方法,如图2所示,该方法包括:
S202,获取待检测的网页数据;
S204,在待检测的网页数据中查找是否包括目标标签,其中,目标标签用于标识待检测的网页数据的起始加载位置;
S206,若查找出目标标签,则在网页数据中位于目标标签之后的位置上插入漏洞检测代码;
S208,在加载网页数据时运行漏洞检测代码;
S210,若通过运行漏洞检测代码检测出网页漏洞,则执行与网页漏洞对应的操作。
可选地,在本实施例中,上述网页漏洞检测可以但不限于应用于网页的跨域漏洞检测,其中,跨域指的是突破同源策略,实现两个源之间的交互访问,而同源策略指的是同一个源中记载文本或脚本与来自其他源中资源的交互方式,其中,拥有相同的协议、端口和主机的两个页面属于同一个源。例如,在加载待检测的网页数据时,由于在网页数据的最开始插入了漏洞检测代码,从而实现了在加载过程中先利用最高优先级的漏洞检测代码执行安全检测,保证了对网页数据的全面的漏洞检测,避免遗漏漏洞;进一步,可以修改检测代码,进而实现对上述网页漏洞的灵活控制。
可选地,在本实施例中,如图3所示,在获取待检测的网页数据之前,还包括:
S302,终端根据浏览器中输入的URL地址向服务器发送用于获取网页数据的获取请求;
S304,响应获取请求服务器将向终端返回相应的网页数据。
可选地,在本实施例中,在网页数据中,上述漏洞检测代码的插入方式可以包括但不限于以下至少之一:在网页数据中位于目标标签之后的位置上插入漏洞检测代码、在待检测的网页数据中的第一行代码之前插入漏洞检测代码。
可选地,在本实施例中,上述在待检测的网页数据中查找到的目标标签可以包括但不限于:头标签,其中,上述标签可以用于标识网页数据的起始加载位置。例如,请求网页前4k的数据,并查找其中是否包括<head>头标签。
可选地,在本实施例中,上述在网页数据中位于目标标签之后的位置上插入漏洞检测代码包括但不限于:在网页数据中位于目标标签之后、且与目标标签相邻的位置上插入漏洞检测代码。可选地,在本实施例中,上述漏洞检测代码包括但不限于:JavaScript代码。
可选地,在本实施例中,上述要插入的JavaScript代码可以包括但不限于加载至内存。可选地,在本实施例中,上述加载方式可以包括但不限于以下至少之一:通过HTTP协议请求服务器上存储的JavaScript代码;将JavaScript代码放置到Android工程项目目录的Assets目录下,再调用Context.getAssets().open(JavaScript.js)方法进行本地读取。进一步,通过HTTP协议请求的方式,可以保证每次读取的JavaScript代码都是服务器最新的;通过本地Assets目录读取JavaScript代码的方式,因为不需要网络请求,速度性能上会有所提升。
可选地,在本实施例中,在加载网页数据时运行漏洞检测代码可以包括但不限于:按照预定的加载顺序对网页数据中的各个部分进行加载,其中,在准备加载各个部分中的当前部分时通过运行漏洞检测代码对当前部分进行漏洞检测。
可选地,在本实施例中,执行与网页漏洞对应的操作可以包括但不限于以下至少之一:中止加载网页数据中与网页漏洞对应的网页数据、上报网页漏洞。
具体结合以下示例进行描述,终端从服务器获取到URL地址对应的网页数据,首先请求前4k数据,查找其中是否包括<head>头标签,若查找到该标签,则将上述JavaScript代码插入到上述<head>头标签之后、且与上述<head>头标签相邻的位置上,如图4所示。进一步,加载上述已插入JavaScript代码的网页数据,运行上述用于检测网页漏洞的JavaScript代码,在相应的网页数据之前添加hook检测逻辑代码,当检测到网页中的网页漏洞时,则中止加载网页数据中与网页漏洞对应的网页数据或上报网页漏洞。
进一步,在加载网页数据的过程中,最终网页内容展示的并不一定是真实URL中的内容,其中,一些网站会在URL访问请求中进行重定向跳转,这时URL地址的实质已经发生了变化,所以可以通过调用以下代码:
httpUrlConnection.getResponseCode()
执行网络请求,并使用代码urlConnection.getURL()获取到真实URL,如果这个真实URL和shouldInterceptRequest传入的URL不一致,则认为发生重定向,立即中断执行,交与系统处理,系统会再次将真实URL传入,从而实现只在真实URL中插入JavaScript检测代码,避免了系统因为重定向多次插入所导致的速率较低的问题,进而保证了插入漏洞检测代码的稳定性。
通过本申请提供的实施例,通过在获取到的待检测的网页数据中查找是否包括目标标签,并在查找到相应的目标标签后,在网页数据中位于目标标签之后的位置插入漏洞检测代码,在加载网页数据时,利用位于起始加载位置的漏洞检测代码检测网页数据中存在的漏洞,实现了在加载的最开始插入漏洞检测代码,与漏洞形成一个级别对抗,保证了对漏洞的全面检测,避免个别遗漏漏洞,进一步,采用上述方案在加载的最开始改动漏洞检测代码,还可以实现针对不同漏洞的检测,进一步保证了漏洞检测的灵活性。
作为一种可选的方案,在网页数据中位于目标标签之后的位置上插入漏洞检测代码包括:
S1,在网页数据中位于目标标签之后、且与目标标签相邻的位置上插入漏洞检测代码。
可选地,在本实施例中,上述目标标签可以包括但不限于:网页数据中的头标签。其中,漏洞检测代码插入的位置可以包括但不限于:位于目标标签之后、且与目标标签相邻的位置。
可选地,在本实施例中,上述目标标签可以但不限于网页数据的头标签,在网页数据中位于目标标签之后、且与目标标签相邻的位置上插入漏洞检测代码包括:
S12,在头标签以及头标签之后的第一行代码之间插入漏洞检测代码。
例如,在服务器返回的网页数据中,先请求前4k数据,查找其中是否包括<head>头标签,如图4所示,若查找到存在上述标签,则将上述漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)插入到上述头标签之后、且与目标标签相邻的位置上,如图4所示。
通过本申请提供的实施例,通过将漏洞检测代码插入到网页数据的最开始位置,拥有了网页数据加载的最早时机,从而保证了对网页漏洞的全面检测,避免由于一些数据已经加载而导致遗漏个别网页漏洞的问题。
作为一种可选的方案,在待检测的网页数据中查找是否包括目标标签之后,还包括:
S1,若未查找出目标标签,则在待检测的网页数据中的第一行代码之前插入漏洞检测代码。
可选地,在本实施例中,在网页数据中未查找到目标标签时,即,该网页数据中没有标准的头标签,则将上述漏洞检测代码插入到待检测的网页数据中的第一行代码之前,即,网页的最开始位置,如图5所示。
例如,在服务器返回的网页数据中,先请求前4k数据,查找其中是否包括<head>头标签,若未查找到存在上述<head>头标签,则如图5所示,将上述漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)插入到上述网页数据中的第一行代码之前,如图5所示。
通过本申请提供的实施例,通过将漏洞检测代码插入到网页数据的最开始位置,拥有了网页数据加载的最早时机,从而保证了对网页漏洞的全面检测,避免由于一些数据已经加载而导致遗漏个别网页漏洞的问题。
作为一种可选的方案,执行与网页漏洞对应的操作包括以下至少之一:
1),中止加载网页数据中与网页漏洞对应的网页数据;
例如,在加载插入漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)网页数据时,当检测到网页漏洞时,则控制中止对该网页漏洞所对应的部分的网页数据的加载,例如,跳过或忽略该部分网页数据。
2),上报网页漏洞。
例如,在加载插入漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)网页数据时,当检测到网页漏洞时,为了减少由于误判而导致的错误中止操作,可以将上述检测出的网页漏洞先上报服务器,以使服务器可以统一记录,在准确判断出是网页漏洞时,再做出相应漏洞处理。
通过本申请提供的实施例,通过对检测出的网页漏洞执行与其对应的操作,实现对网页漏洞的及时处理,当针对不同的网页漏洞检测时,在实时修改漏洞检测代码后,同时可对检测出的网页漏洞作出实时处理,保证了漏洞检测的实时性。
作为一种可选的方案,
S1,在加载网页数据时运行漏洞检测代码包括:
S12,按照预定的加载顺序对网页数据中的各个部分进行加载,其中,在准备加载各个部分中的当前部分时通过运行漏洞检测代码对当前部分进行漏洞检测;
S2,中止加载网页数据中与网页漏洞对应的网页数据包括:
S22,若检测出当前部分出现漏洞,则跳过对当前部分的加载。
具体结合以下示例进行描述,按照预定的加载顺序加载上述已插入JavaScript代码的网页数据,运行上述用于检测网页漏洞的JavaScript代码,在网页数据中的各个部分之前添加hook检测逻辑代码,在加载各个部分中的当前部分时,若检测到网页漏洞,则中止加载网页数据中与网页漏洞对应的当前部分的网页数据,例如,跳过对与网页漏洞对应的当前部分的网页数据的加载。对于其他未检测出网页漏洞的数据,可继续加载。
通过本申请提供的实施例,通过按照预定的加载顺序对网页数据中的各个部分进行加载,其中,在准备加载各个部分中的当前部分时通过运行漏洞检测代码对当前部分进行漏洞检测,若检测到当前部分存在网页漏洞,则可直接对上述网页漏洞对应的网页数据执行相应的操作,例如,中止对上述网页漏洞对应的网页数据的记载。从而实现对检测出的网页漏洞的灵活控制,避免对其他未检测出网页漏洞的网页数据的影响。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,提供了一种网页漏洞检测装置的实施例,其中,上述网页漏洞检测装置可以但不限于应用于如图1所示的网络环境中,其中,上述网络环境中包括终端102及服务器104。可选地,在本实施例中,上述终端102可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、PC机。可选地,在本实施例中,上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。例如,在终端102上的浏览器中输入预定的统一资源定位URL(Uniform Resource Locator)地址,通过网络从相应的服务器104中获取对应的网页数据,并对上述网页数据进行漏洞检测。上述举例只是一种示例,本实施例对此不做任何限定。
根据本发明实施例,还提供了一种用于实施上述网页漏洞检测方法的网页漏洞检测装置,如图6所示,该装置包括:
1)获取单元602,用于获取待检测的网页数据;
2)查找单元604,用于在待检测的网页数据中查找是否包括目标标签,其中,目标标签用于标识待检测的网页数据的起始加载位置;
3)第一插入单元606,用于在查找出目标标签时,在网页数据中位于目标标签之后的位置上插入漏洞检测代码;
4)运行单元608,用于在加载网页数据时运行漏洞检测代码;
5)操作单元610,用于在通过运行漏洞检测代码检测出网页漏洞时,执行与网页漏洞对应的操作。
可选地,在本实施例中,上述网页漏洞检测可以但不限于应用于网页的跨域漏洞检测,其中,跨域指的是突破同源策略,实现两个源之间的交互访问,而同源策略指的是同一个源中记载文本或脚本与来自其他源中资源的交互方式,其中,拥有相同的协议、端口和主机的两个页面属于同一个源。例如,在加载待检测的网页数据时,由于在网页数据的最开始插入了漏洞检测代码,从而实现了在加载过程中先利用最高优先级的漏洞检测代码执行安全检测,保证了对网页数据的全面的漏洞检测,避免遗漏漏洞;进一步,可以修改检测代码,进而实现对上述网页漏洞的灵活控制。
可选地,在本实施例中,如图3所示,在获取待检测的网页数据之前,还包括:
S302,终端根据浏览器中输入的URL地址向服务器发送用于获取网页数据的获取请求;
S304,响应获取请求服务器将向终端返回相应的网页数据。
可选地,在本实施例中,在网页数据中,上述漏洞检测代码的插入方式可以包括但不限于以下至少之一:在网页数据中位于目标标签之后的位置上插入漏洞检测代码、在待检测的网页数据中的第一行代码之前插入漏洞检测代码。
可选地,在本实施例中,上述在待检测的网页数据中查找到的目标标签可以包括但不限于:头标签,其中,上述标签可以用于标识网页数据的起始加载位置。例如,请求网页前4k的数据,并查找其中是否包括<head>头标签。
可选地,在本实施例中,上述在网页数据中位于目标标签之后的位置上插入漏洞检测代码包括但不限于:在网页数据中位于目标标签之后、且与目标标签相邻的位置上插入漏洞检测代码。可选地,在本实施例中,上述漏洞检测代码包括但不限于:JavaScript代码。
可选地,在本实施例中,上述要插入的JavaScript代码可以包括但不限于加载至内存。可选地,在本实施例中,上述加载方式可以包括但不限于以下至少之一:通过HTTP协议请求服务器上存储的JavaScript代码;将JavaScript代码放置到Android工程项目目录的Assets目录下,再调用Context.getAssets().open(JavaScript.js)方法进行本地读取。进一步,通过HTTP协议请求的方式,可以保证每次读取的JavaScript代码都是服务器最新的;通过本地Assets目录读取JavaScript代码的方式,因为不需要网络请求,速度性能上会有所提升。
可选地,在本实施例中,在加载网页数据时运行漏洞检测代码可以包括但不限于:按照预定的加载顺序对网页数据中的各个部分进行加载,其中,在准备加载各个部分中的当前部分时通过运行漏洞检测代码对当前部分进行漏洞检测。
可选地,在本实施例中,执行与网页漏洞对应的操作可以包括但不限于以下至少之一:中止加载网页数据中与网页漏洞对应的网页数据、上报网页漏洞。
具体结合以下示例进行描述,终端从服务器获取到URL地址对应的网页数据,首先请求前4k数据,查找其中是否包括<head>头标签,若查找到该标签,则将上述JavaScript代码插入到上述<head>头标签之后、且与上述<head>头标签相邻的位置上,如图4所示。进一步,加载上述已插入JavaScript代码的网页数据,运行上述用于检测网页漏洞的JavaScript代码,在相应的网页数据之前添加hook检测逻辑代码,当检测到网页中的网页漏洞时,则中止加载网页数据中与网页漏洞对应的网页数据或上报网页漏洞。
进一步,在加载网页数据的过程中,最终网页内容展示的并不一定是真实URL中的内容,其中,一些网站会在URL访问请求中进行重定向跳转,这时URL地址的实质已经发生了变化,所以可以通过调用以下代码:
httpUrlConnection.getResponseCode()
执行网络请求,并使用代码urlConnection.getURL()获取到真实URL,如果这个真实URL和shouldInterceptRequest传入的URL不一致,则认为发生重定向,立即中断执行,交与系统处理,系统会再次将真实URL传入,从而实现只在真实URL中插入JavaScript检测代码,避免了系统因为重定向多次插入所导致的速率较低的问题,进而保证了插入漏洞检测代码的稳定性。
通过本申请提供的实施例,通过在获取到的待检测的网页数据中查找是否包括目标标签,并在查找到相应的目标标签后,在网页数据中位于目标标签之后的位置插入漏洞检测代码,在加载网页数据时,利用位于起始加载位置的漏洞检测代码检测网页数据中存在的漏洞,实现了在加载的最开始插入漏洞检测代码,与漏洞形成一个级别对抗,保证了对漏洞的全面检测,避免个别遗漏漏洞,进一步,采用上述方案在加载的最开始改动漏洞检测代码,还可以实现针对不同漏洞的检测,进一步保证了漏洞检测的灵活性。
作为一种可选的方案,第一插入单元606包括:
1)插入模块,用于在网页数据中位于目标标签之后、且与目标标签相邻的位置上插入漏洞检测代码。
可选地,在本实施例中,上述目标标签可以包括但不限于:网页数据中的头标签。其中,漏洞检测代码插入的位置可以包括但不限于:位于目标标签之后、且与目标标签相邻的位置。
可选地,在本实施例中,上述目标标签可以但不限于网页数据的头标签,上述插入模块包括:
1)插入子模块,用于在头标签以及头标签之后的第一行代码之间插入漏洞检测代码。
例如,在服务器返回的网页数据中,先请求前4k数据,查找其中是否包括<head>头标签,如图4所示,若查找到存在上述标签,则将上述漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)插入到上述头标签之后、且与目标标签相邻的位置上,如图4所示。
通过本申请提供的实施例,通过将漏洞检测代码插入到网页数据的最开始位置,拥有了网页数据加载的最早时机,从而保证了对网页漏洞的全面检测,避免由于一些数据已经加载而导致遗漏个别网页漏洞的问题。
作为一种可选的方案,上述装置还包括:
1)第二插入单元,用于在待检测的网页数据中查找是否包括目标标签之后,当未查找出目标标签时,在待检测的网页数据中的第一行代码之前插入漏洞检测代码。
可选地,在本实施例中,在网页数据中未查找到目标标签时,即,该网页数据中没有标准的头标签,则将上述漏洞检测代码插入到待检测的网页数据中的第一行代码之前,即,网页的最开始位置,如图5所示。
例如,在服务器返回的网页数据中,先请求前4k数据,查找其中是否包括<head>头标签,若未查找到存在上述<head>头标签,则如图5所示,将上述漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)插入到上述网页数据中的第一行代码之前,如图5所示。
通过本申请提供的实施例,通过将漏洞检测代码插入到网页数据的最开始位置,拥有了网页数据加载的最早时机,从而保证了对网页漏洞的全面检测,避免由于一些数据已经加载而导致遗漏个别网页漏洞的问题。
作为一种可选的方案,操作单元610包括以下至少一种模块:
1)中止模块,用于中止加载网页数据中与网页漏洞对应的网页数据;
例如,在加载插入漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)网页数据时,当检测到网页漏洞时,则控制中止对该网页漏洞所对应的部分的网页数据的加载,例如,跳过或忽略该部分网页数据。
2)上报模块,用于上报网页漏洞。
例如,在加载插入漏洞检测代码(例如,用于检测跨域漏洞的JavaScript检测代码)网页数据时,当检测到网页漏洞时,为了减少由于误判而导致的错误中止操作,可以将上述检测出的网页漏洞先上报服务器,以使服务器可以统一记录,在准确判断出是网页漏洞时,再做出相应漏洞处理。
通过本申请提供的实施例,通过对检测出的网页漏洞执行与其对应的操作,实现对网页漏洞的及时处理,当针对不同的网页漏洞检测时,在实时修改漏洞检测代码后,同时可对检测出的网页漏洞作出实时处理,保证了漏洞检测的实时性。
作为一种可选的方案,
1)运行单元608包括:加载模块,用于按照预定的加载顺序对网页数据中的各个部分进行加载,其中,在准备加载各个部分中的当前部分时通过运行漏洞检测代码对当前部分进行漏洞检测;
2)操作单元610中的中止模块包括:跳过子模块,用于在检测出当前部分出现漏洞时,控制加载模块跳过对当前部分的加载。
通过本申请提供的实施例,通过按照预定的加载顺序对网页数据中的各个部分进行加载,其中,在准备加载各个部分中的当前部分时通过运行漏洞检测代码对当前部分进行漏洞检测,若检测到当前部分存在网页漏洞,则可直接对上述网页漏洞对应的网页数据执行相应的操作,例如,中止对上述网页漏洞对应的网页数据的记载。从而实现对检测出的网页漏洞的灵活控制,避免对其他未检测出网页漏洞的网页数据的影响。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例3
根据本发明实施例,提供了一种用于实施上述网页漏洞检测方法的终端的实施例,其中,上述终端可以但不限于应用于如图1所示的网络环境中,其中,上述网络环境中包括终端102及服务器104。可选地,在本实施例中,上述终端102可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、PC机。可选地,在本实施例中,上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。例如,在终端102上的浏览器中输入预定的统一资源定位URL(Uniform Resource Locator)地址,通过网络从相应的服务器104中获取对应的网页数据,并对上述网页数据进行漏洞检测。上述举例只是一种示例,本实施例对此不做任何限定。
根据本发明实施例,还提供了一种用于实施上述网页漏洞检测方法的终端,该终端包括:
1)存储器,被设置为存储获取到的待检测的网页数据;
2)处理器,被设置为查找待检测的网页数据中是否包括目标标签,其中,目标标签用于标识待检测的网页数据的起始加载位置;并在查找出目标标签时,在网页数据中位于目标标签之后的位置上插入漏洞检测代码;在加载网页数据时运行漏洞检测代码,并在通过运行漏洞检测代码检测出网页漏洞时,执行与网页漏洞对应的操作。
3)通讯接口,被设置为从服务器获取待检测的网页数据。
可选地,在本实施例中,上述存储器还可以用于存储上述实施例1中的网页漏洞检测过程中所存储的其他数据。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
实施例4
根据本发明实施例,提供了一种用于实施网页漏洞检测方法的存储介质的实施例,其中,上述存储介质可以但不限于应用于如图1所示的网络环境中,其中,上述网络环境中包括终端102及服务器104。可选地,在本实施例中,上述终端102可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、PC机。可选地,在本实施例中,上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。例如,在终端102上的浏览器中输入预定的统一资源定位URL(Uniform Resource Locator)地址,通过网络从相应的服务器104中获取对应的网页数据,并对上述网页数据进行漏洞检测。上述举例只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取待检测的网页数据;
S2,在待检测的网页数据中查找是否包括目标标签,其中,目标标签用于标识待检测的网页数据的起始加载位置;
S3,若查找出目标标签,则在网页数据中位于目标标签之后的位置上插入漏洞检测代码;
S4,在加载网页数据时运行漏洞检测代码;
S5,若通过运行漏洞检测代码检测出网页漏洞,则执行与网页漏洞对应的操作。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。