CN104951700A - 网页漏洞检测方法和装置 - Google Patents

网页漏洞检测方法和装置 Download PDF

Info

Publication number
CN104951700A
CN104951700A CN201410535983.9A CN201410535983A CN104951700A CN 104951700 A CN104951700 A CN 104951700A CN 201410535983 A CN201410535983 A CN 201410535983A CN 104951700 A CN104951700 A CN 104951700A
Authority
CN
China
Prior art keywords
web data
hole detection
target labels
webpage
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410535983.9A
Other languages
English (en)
Other versions
CN104951700B (zh
Inventor
丁冉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410535983.9A priority Critical patent/CN104951700B/zh
Publication of CN104951700A publication Critical patent/CN104951700A/zh
Application granted granted Critical
Publication of CN104951700B publication Critical patent/CN104951700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网页漏洞检测方法和装置。其中,该方法包括:获取待检测的网页数据;在待检测的网页数据中查找是否包括目标标签,其中,目标标签用于标识待检测的网页数据的起始加载位置;若查找出目标标签,则在网页数据中位于目标标签之后的位置上插入漏洞检测代码;在加载网页数据时运行漏洞检测代码;若通过运行漏洞检测代码检测出网页漏洞,则执行与网页漏洞对应的操作。本发明解决了采用现有的网页漏洞检测技术由于存在漏洞遗漏所导致的检测不全面的技术问题。

Description

网页漏洞检测方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种网页漏洞检测方法和装置。
背景技术
目前,在进行网页漏洞检测时,主要采用以下两中可用的漏洞检测方案:
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中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种网页漏洞检测方法,其特征在于,包括:
获取待检测的网页数据;
在所述待检测的网页数据中查找是否包括目标标签,其中,所述目标标签用于标识所述待检测的网页数据的起始加载位置;
若查找出所述目标标签,则在所述网页数据中位于所述目标标签之后的位置上插入漏洞检测代码;
在加载所述网页数据时运行所述漏洞检测代码;
若通过运行所述漏洞检测代码检测出网页漏洞,则执行与所述网页漏洞对应的操作。
2.根据权利要求1所述的方法,其特征在于,在所述网页数据中位于所述目标标签之后的位置上插入漏洞检测代码包括:
在所述网页数据中位于所述目标标签之后、且与所述目标标签相邻的位置上插入所述漏洞检测代码。
3.根据权利要求2所述的方法,其特征在于,所述目标标签为所述网页数据的头标签,在所述网页数据中位于所述目标标签之后、且与所述目标标签相邻的位置上插入所述漏洞检测代码包括:
在所述头标签以及所述头标签之后的第一行代码之间插入所述漏洞检测代码。
4.根据权利要求1所述的方法,其特征在于,在所述待检测的网页数据中查找是否包括目标标签之后,还包括:
若未查找出所述目标标签,则在所述待检测的网页数据中的第一行代码之前插入所述漏洞检测代码。
5.根据权利要求1所述的方法,其特征在于,所述执行与所述网页漏洞对应的操作包括:
中止加载所述网页数据中与所述网页漏洞对应的网页数据;或者上报所述网页漏洞。
6.根据权利要求5所述的方法,其特征在于,
在加载所述网页数据时运行所述漏洞检测代码包括:
按照预定的加载顺序对所述网页数据中的各个部分进行加载,其中,在准备加载所述各个部分中的当前部分时通过运行所述漏洞检测代码对所述当前部分进行漏洞检测;
所述中止加载所述网页数据中与所述网页漏洞对应的网页数据包括:
若检测出所述当前部分出现漏洞,则跳过对所述当前部分的加载。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述漏洞检测代码包括:JavaScript代码。
8.一种网页漏洞检测装置,其特征在于,包括:
获取单元,用于获取待检测的网页数据;
查找单元,用于在所述待检测的网页数据中查找是否包括目标标签,其中,所述目标标签用于标识所述待检测的网页数据的起始加载位置;
第一插入单元,用于在查找出所述目标标签时,在所述网页数据中位于所述目标标签之后的位置上插入漏洞检测代码;
运行单元,用于在加载所述网页数据时运行所述漏洞检测代码;
操作单元,用于在通过运行所述漏洞检测代码检测出网页漏洞时,执行与所述网页漏洞对应的操作。
9.根据权利要求8所述的装置,其特征在于,所述第一插入单元包括:
插入模块,用于在所述网页数据中位于所述目标标签之后、且与所述目标标签相邻的位置上插入所述漏洞检测代码。
10.根据权利要求9所述的装置,其特征在于,所述目标标签为所述网页数据的头标签,所述插入模块包括:
插入子模块,用于在所述头标签以及所述头标签之后的第一行代码之间插入所述漏洞检测代码。
11.根据权利要求8所述的装置,其特征在于,还包括:
第二插入单元,用于在所述待检测的网页数据中查找是否包括目标标签之后,当未查找出所述目标标签时,在所述待检测的网页数据中的第一行代码之前插入所述漏洞检测代码。
12.根据权利要求8所述的装置,其特征在于,所述操作单元包括:
中止模块,用于中止加载所述网页数据中与所述网页漏洞对应的网页数据;或者
上报模块,用于上报所述网页漏洞。
13.根据权利要求12所述的装置,其特征在于,
所述运行单元包括:加载模块,用于按照预定的加载顺序对所述网页数据中的各个部分进行加载,其中,在准备加载所述各个部分中的当前部分时通过运行所述漏洞检测代码对所述当前部分进行漏洞检测;
所述操作单元中的所述中止模块包括:跳过子模块,用于在检测出所述当前部分出现漏洞时,控制所述加载模块跳过对所述当前部分的加载。
14.根据权利要求8-13中任一项所述的装置,其特征在于,所述漏洞检测代码包括:JavaScript代码。
CN201410535983.9A 2014-10-11 2014-10-11 网页漏洞检测方法和装置 Active CN104951700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410535983.9A CN104951700B (zh) 2014-10-11 2014-10-11 网页漏洞检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410535983.9A CN104951700B (zh) 2014-10-11 2014-10-11 网页漏洞检测方法和装置

Publications (2)

Publication Number Publication Date
CN104951700A true CN104951700A (zh) 2015-09-30
CN104951700B CN104951700B (zh) 2018-11-06

Family

ID=54166350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410535983.9A Active CN104951700B (zh) 2014-10-11 2014-10-11 网页漏洞检测方法和装置

Country Status (1)

Country Link
CN (1) CN104951700B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101145A (zh) * 2016-08-10 2016-11-09 北京神州绿盟信息安全科技股份有限公司 一种网站漏洞检测方法及装置
CN107180194A (zh) * 2017-05-11 2017-09-19 北京安赛创想科技有限公司 基于视觉分析系统进行漏洞检测的方法及装置
CN107577949A (zh) * 2017-09-05 2018-01-12 郑州云海信息技术有限公司 一种Web越权漏洞检测方法与系统
CN108319822A (zh) * 2018-01-05 2018-07-24 武汉斗鱼网络科技有限公司 一种保护网页代码的方法、存储介质、电子设备和系统
CN108459954A (zh) * 2017-02-22 2018-08-28 腾讯科技(深圳)有限公司 应用程序漏洞检测方法和装置
CN109688130A (zh) * 2018-12-24 2019-04-26 北京奇虎科技有限公司 网页劫持检测方法、装置及计算机存储介质
CN114048488A (zh) * 2022-01-13 2022-02-15 杭州默安科技有限公司 漏洞检测方法及系统
CN114338240A (zh) * 2022-03-07 2022-04-12 浙江网商银行股份有限公司 漏洞扫描方法以及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147925A1 (en) * 2001-04-04 2002-10-10 International Business Machines Corporation Method and apparatus for protecting a web server against vandals attacks without restricting legitimate access
CN101620620A (zh) * 2009-08-06 2010-01-06 成都市华为赛门铁克科技有限公司 分析网页方法和装置
CN102457500A (zh) * 2010-10-22 2012-05-16 北京神州绿盟信息安全科技股份有限公司 一种网站扫描设备和方法
CN102520985A (zh) * 2011-11-29 2012-06-27 深圳市万兴软件有限公司 一种客户端软件运行的系统和方法
CN102546576A (zh) * 2010-12-31 2012-07-04 北京启明星辰信息技术股份有限公司 一种网页挂马检测和防护方法、系统及相应代码提取方法
CN103605926A (zh) * 2013-11-29 2014-02-26 北京奇虎科技有限公司 一种网页篡改的检测方法及装置
CN103856471A (zh) * 2012-12-06 2014-06-11 阿里巴巴集团控股有限公司 跨站脚本攻击监控系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147925A1 (en) * 2001-04-04 2002-10-10 International Business Machines Corporation Method and apparatus for protecting a web server against vandals attacks without restricting legitimate access
CN101620620A (zh) * 2009-08-06 2010-01-06 成都市华为赛门铁克科技有限公司 分析网页方法和装置
CN102457500A (zh) * 2010-10-22 2012-05-16 北京神州绿盟信息安全科技股份有限公司 一种网站扫描设备和方法
CN102546576A (zh) * 2010-12-31 2012-07-04 北京启明星辰信息技术股份有限公司 一种网页挂马检测和防护方法、系统及相应代码提取方法
CN102520985A (zh) * 2011-11-29 2012-06-27 深圳市万兴软件有限公司 一种客户端软件运行的系统和方法
CN103856471A (zh) * 2012-12-06 2014-06-11 阿里巴巴集团控股有限公司 跨站脚本攻击监控系统及方法
CN103605926A (zh) * 2013-11-29 2014-02-26 北京奇虎科技有限公司 一种网页篡改的检测方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101145A (zh) * 2016-08-10 2016-11-09 北京神州绿盟信息安全科技股份有限公司 一种网站漏洞检测方法及装置
CN106101145B (zh) * 2016-08-10 2019-11-15 北京神州绿盟信息安全科技股份有限公司 一种网站漏洞检测方法及装置
CN108459954A (zh) * 2017-02-22 2018-08-28 腾讯科技(深圳)有限公司 应用程序漏洞检测方法和装置
CN108459954B (zh) * 2017-02-22 2022-08-26 腾讯科技(深圳)有限公司 应用程序漏洞检测方法和装置
CN107180194B (zh) * 2017-05-11 2020-05-05 北京安赛创想科技有限公司 基于视觉分析系统进行漏洞检测的方法及装置
CN107180194A (zh) * 2017-05-11 2017-09-19 北京安赛创想科技有限公司 基于视觉分析系统进行漏洞检测的方法及装置
CN107577949A (zh) * 2017-09-05 2018-01-12 郑州云海信息技术有限公司 一种Web越权漏洞检测方法与系统
CN108319822A (zh) * 2018-01-05 2018-07-24 武汉斗鱼网络科技有限公司 一种保护网页代码的方法、存储介质、电子设备和系统
CN108319822B (zh) * 2018-01-05 2020-05-12 武汉斗鱼网络科技有限公司 一种保护网页代码的方法、存储介质、电子设备和系统
CN109688130A (zh) * 2018-12-24 2019-04-26 北京奇虎科技有限公司 网页劫持检测方法、装置及计算机存储介质
CN114048488A (zh) * 2022-01-13 2022-02-15 杭州默安科技有限公司 漏洞检测方法及系统
CN114048488B (zh) * 2022-01-13 2022-04-22 杭州默安科技有限公司 漏洞检测方法及系统
CN114338240A (zh) * 2022-03-07 2022-04-12 浙江网商银行股份有限公司 漏洞扫描方法以及装置
CN114338240B (zh) * 2022-03-07 2022-08-26 浙江网商银行股份有限公司 漏洞扫描方法以及装置

Also Published As

Publication number Publication date
CN104951700B (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN104951700A (zh) 网页漏洞检测方法和装置
KR20200043467A (ko) 웹페이지 콘텐츠를 추출하기 위한 방법 및 단말 장치
CN107291759B (zh) 浏览器页面资源的处理方法和装置
CN109639749B (zh) 云桌面的访问方法、装置、设备及存储介质
US20170316209A1 (en) Method and device for preventing application in an operating system from being uninstalled
CN108140088A (zh) 禁用恶意浏览器扩展
CN110086658A (zh) 接口切换方法、装置及计算机可读存储介质
WO2016011879A1 (zh) 网页显示方法和装置
CN105701164A (zh) 一种网页点击量的统计方法和装置
CN107679214A (zh) 链接定位方法、装置、终端与计算机可读存储介质
CN111552463A (zh) 一种页面跳转方法、装置、计算机设备及存储介质
CN113536185B (zh) 应用页面的加载方法、存储介质、及其相关设备
CN105354498A (zh) 一种注册表的操作方法和相关装置及设备
CN102254539B (zh) 便携式电子设备屏幕驱动程序自适应方法及该电子设备
CN104317884B (zh) 网站来源页面类型的获取方法和装置
CN103488508B (zh) 一种浏览器的工作方法、浏览器及终端设备
US9053177B1 (en) Sitelinks based on visual location
CN107332805B (zh) 检测漏洞的方法、装置和系统
CN111158777B (zh) 组件调用方法、装置及计算机可读存储介质
CN110764746B (zh) 脚本生成方法、装置及计算机可读存储介质
CN112445599A (zh) 浏览器内核自动切换方法、装置、设备及存储介质
US20140113270A1 (en) System and method for mobile automated training
CN111400137B (zh) 监测事件的存储方法、装置、移动终端和存储介质
CN103955548A (zh) 一种网页渲染方法及装置
CN103714291A (zh) 一种信息处理方法及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190805

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.