CN109992426A - 网页代码的检测方法、装置和计算机可读存储介质 - Google Patents

网页代码的检测方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN109992426A
CN109992426A CN201711483462.3A CN201711483462A CN109992426A CN 109992426 A CN109992426 A CN 109992426A CN 201711483462 A CN201711483462 A CN 201711483462A CN 109992426 A CN109992426 A CN 109992426A
Authority
CN
China
Prior art keywords
webpage
code
web page
target
judged
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.)
Pending
Application number
CN201711483462.3A
Other languages
English (en)
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711483462.3A priority Critical patent/CN109992426A/zh
Publication of CN109992426A publication Critical patent/CN109992426A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了网页代码的检测方法、装置和计算机可读存储介质。所述方法包括:在第一网页中加载第二网页;通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。该技术方案提供了一种区别于代码内容匹配方式的网页代码检测的实现方式,对于改变了代码形式而没有改变代码本质的网页代码部署方式也能够根据获取的资源准确判断出对应的目标网页代码部署成功,而且比对资源的方式相较于代码与代码的比对效率也更高,因此在两方面都优于传统的方案。

Description

网页代码的检测方法、装置和计算机可读存储介质
技术领域
本发明涉及网页技术领域,具体涉及网页代码的检测方法、装置和计算机可读存储介质。
背景技术
现有技术中,网站开发者在进行网站中各网页的开发时,并不总是需要重新网页的所有代码,因为许多功能可以以第三方直接提供。例如,在网页中部署广告以获得收入,此时需要在网页中部署统计用户网页行为的代码,这样可以知道用户点击了哪些广告,而广告的收入往往是与用户点击相关的。
由于第三方提供的网页代码需要部署在网站开发者自己开发的网页代码中,就需要检测第三方提供的网页代码是否部署成功,现有技术中往往是采用内容匹配的方式来检测,效率并不高,检测效果也不一定准确。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题网页代码的检测方法、装置和计算机可读存储介质。
依据本发明的一个方面,提供了一种网页代码的检测方法,包括:
在第一网页中加载第二网页;
通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;
若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
可选地,所述在第一网页中加载第二网页包括:
通过所述第一网页中的网页地址输入框接收输入的第二网页的网页地址;
根据接收的第二网页的网页地址,向所述第二网页的服务器请求所述第二网页的网页内容,并将所述网页内容在所述第一网页中的第二网页展示框内进行加载。
可选地,所述将所述网页内容在所述第一网页中的第二网页展示框内进行加载包括:
通过所述第一网页中的指定iframe组件加载所述网页内容;
和/或,
调用window.open函数建立子窗口,在所述子窗口中加载所述网页内容。
可选地,所述通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源包括:
调用window.postMessage函数,从所述第二网页中获取所述指定资源。
可选地,该方法还包括:
响应于在所述第二网页中的操作事件,判断是否存在与所述操作事件对应的操作结果;
是则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
可选地,所述第一网页中预置有操作列表,所述操作列表中存储有操作事件与对应的操作结果;
所述判断是否存在所述操作事件对应的操作结果包括:
若所述操作事件是所述操作列表中的操作事件,但未从所述第二网页中获取到与所述操作事件对应的操作结果,则判断为不存在与所述操作事件对应的操作结果。
可选地,所述目标网页代码为统计用户网页行为的代码。
可选地,该方法还包括:
在所述第一网页中展示所述第二网页的源代码中是否成功部署所述目标网页代码的结果。
依据本发明的另一方面,提供了一种网页代码的检测装置,包括:
加载单元,适于在第一网页中加载第二网页;
资源获取单元,适于通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;
判断单元,适于若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
可选地,所述加载单元,适于通过所述第一网页中的网页地址输入框接收输入的第二网页的网页地址,根据接收的第二网页的网页地址,向所述第二网页的服务器请求所述第二网页的网页内容,并将所述网页内容在所述第一网页中的第二网页展示框内进行加载。
可选地,所述加载单元,适于通过所述第一网页中的指定iframe组件加载所述网页内容;和/或,调用window.open函数建立子窗口,在所述子窗口中加载所述网页内容。
可选地,所述资源获取单元,适于调用window.postMessage函数,从所述第二网页中获取所述指定资源。
可选地,所述判断单元,还适于响应于在所述第二网页中的操作事件,判断是否存在与所述操作事件对应的操作结果,是则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
可选地,所述第一网页中预置有操作列表,所述操作列表中存储有操作事件与对应的操作结果;
所述判断单元,适于若所述操作事件是所述操作列表中的操作事件,但未从所述第二网页中获取到与所述操作事件对应的操作结果,则判断为不存在与所述操作事件对应的操作结果。
可选地,所述目标网页代码为统计用户网页行为的代码。
可选地,该装置还包括:
检测结果展示单元,适于在所述第一网页中展示所述第二网页的源代码中是否成功部署所述目标网页代码的结果。
依据本发明的又一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一项所述的方法。
由上述可知,本发明的技术方案,通过在第一网页中加载第二网页,通过网页间通信的方式获取第二网页中与待检测的目标网页代码对应的指定资源,如果能够获取到,则认定为第二网页的源代码中成功部署了目标网页代码,反之则认为第二网页的源代码中未能成功部署目标网页代码。该技术方案提供了一种区别于代码内容匹配方式的网页代码检测的实现方式,对于改变了代码形式而没有改变代码本质的网页代码部署方式也能够根据获取的资源准确判断出对应的目标网页代码部署成功,而且比对资源的方式相较于代码与代码的比对效率也更高,因此在两方面都优于传统的方案。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种网页代码的检测方法的流程示意图;
图2示出了根据本发明一个实施例的一种网页代码的检测装置的结构示意图;
图3示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
一般而言,第三方网页代码的部署只需要将第三方网页代码写入网页框架下的指定位置即可,对第三方网页代码的内容并不需要进行变动。然而网站开发者的开发习惯各异,有时为了代码看起来更符合自己的开发习惯,会采用其他方式在网页框架中部署第三方网页代码,这样就造成在采取传统的代码内容匹配方式进行第三方网页代码的部署检测时,检测不到第三方网页代码,而实际上第三方网页代码已经部署成功并能够正常运作。
因此,本发明提出了一种不同于代码内容检测的网页代码的检测方法,相较于代码内容检测的方式,准确度更好,效率也更高。
图1示出了根据本发明一个实施例的一种网页代码的检测方法的流程示意图,如图1所示,该方法包括:
步骤S110,在第一网页中加载第二网页。
具体来说,第一网页可以是网页代码检测服务器所提供的前端页面,第二网页是待检测网页代码是否部署成功的网页。
步骤S120,通过网页间通信,从第二网页中获取与待检测的目标网页代码对应的指定资源。
其中的指定资源就是指网页资源,可以是文本、控件等网页元素。这是利用了需要检测的目标网页代码的效果而并非是代码本身来实现代码检测,因为实际上,部署目标网页代码必然是为了实现某些功能,那么直接判断这些功能是否可用,也可以从结果的角度入手来判断代码是否部署成功。
步骤S130,若获取成功,则判断为第二网页的源代码中成功部署了目标网页代码,否则判断为第二网页的源代码中未成功部署目标网页代码。
虽然上面的例子中都将目标网页代码用第三方网页代码进行了举例,实际上并不限于第三方网页代码,开发者如果想检测自己的代码是否开发成功,能否实现理想的效果,也可以采用上述方式。
可见,图1所示的方法,通过在第一网页中加载第二网页,通过网页间通信的方式获取第二网页中与待检测的目标网页代码对应的指定资源,如果能够获取到,则认定为第二网页的源代码中成功部署了目标网页代码,反之则认为第二网页的源代码中未能成功部署目标网页代码。该技术方案提供了一种区别于代码内容匹配方式的网页代码检测的实现方式,对于改变了代码形式而没有改变代码本质的网页代码部署方式也能够根据获取的资源准确判断出对应的目标网页代码部署成功,而且比对资源的方式相较于代码与代码的比对效率也更高,因此在两方面都优于传统的方案。
在本发明的一个实施例中,上述方法中,在第一网页中加载第二网页包括:通过第一网页中的网页地址输入框接收输入的第二网页的网页地址;根据接收的第二网页的网页地址,向第二网页的服务器请求第二网页的网页内容,并将网页内容在第一网页中的第二网页展示框内进行加载。
在本实施例中,第一网页就可以是网页代码检测服务器所提供的前端页面,上面还提供了一个网页地址输入框,其中,可以以正则表达式的方式提供网页地址输入规范,以禁止输入不合法的网页地址。
在接收到用户输入的第二网页的网页地址后,就可以向对应的服务器请求第二网页的网页内容,这个过程与普通的网页加载方式相类似,在此不再赘述。在获取到第二网页的网页内容后,将其在第二网页展示框内进行加载,这样根据网页间通信就可以获取加载了哪些资源,从而进行后续的判断。
在本发明的一个实施例中,上述方法中,将网页内容在第一网页中的第二网页展示框内进行加载包括:通过第一网页中的指定iframe组件加载网页内容;和/或,调用window.open函数建立子窗口,在子窗口中加载网页内容。
在本例中给出了两种第二网页展示框的实现方法,可以单独实施或者结合实施,例如针对不同的网页采用不同的第二网页展示框的实现方式,或者是针对不同的浏览器采用不同的第二网页展示框的实现方式。
一种方法是利用第一网页中的iframe组件。iframe组件通常被所有浏览器所支持,可以用于创建包含另外一个文档的内联框架,把第二网页的网页地址放置在标签<iframe>和</iframe>之间即可实现。
另一种方法是利用window.open函数建立子窗口,具体示例为window.open(URL,name,features,replace),其中URL就是第二网页的网页地址,name是一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记<a>和<form>的属性target的值;feature同样是一个可选的字符串,声明了新窗口要显示的标准浏览器的特征;replace时候一个可选的布尔值,规定了装载到窗口的URL是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。
在本发明的一个实施例中,上述方法中,通过网页间通信,从第二网页中获取与待检测的目标网页代码对应的指定资源包括:调用window.postMessage函数,从第二网页中获取指定资源。
在本实施例中给出了利用window.postMessage函数获取指定资源的示例,实际上在其他实施例中也可以利用设置钩子(hook)的方式来获取指定资源。
在本发明的一个实施例中,上述方法还包括:响应于在第二网页中的操作事件,判断是否存在与操作事件对应的操作结果;是则判断为第二网页的源代码中成功部署了目标网页代码,否则判断为第二网页的源代码中未成功部署目标网页代码。
由于许多目标网页代码的功能是复合的,仅根据加载网页这一步骤并不能判断出目标网页代码是否部署成功,例如,用户点击某个按钮后,才触发了目标网页代码的逻辑,一种示例就是统计用户将哪些商品放入购物车,这就需要用户先点击“加入购物车”按钮。
具体来说,用户在通过第一网页中的网页展示框看到了第二网页之后,可以对其进行一系列的操作,这时就接收到了第二网页中的操作事件,第二网页应当根据自身的代码逻辑执行相应的处理,如果目标网页代码也与这些操作事件相关,那么也应该存在与操作事件对应的操作结果。在本实施例中就是根据上述关系来判断第二网页的源代码中是否成功部署了目标网页代码。当然,操作事件也可以由测试脚本生成。
在本发明的一个实施例中,上述方法中,第一网页中预置有操作列表,操作列表中存储有操作事件与对应的操作结果;判断是否存在操作事件对应的操作结果包括:若操作事件是操作列表中的操作事件,但未从第二网页中获取到与操作事件对应的操作结果,则判断为不存在与操作事件对应的操作结果。
在本实施例中,由于要进行操作结果的判断,因此在第一网页中预置有操作列表,因为许多第二网页中的操作事件并不是与目标网页代码相关的。也就是说,只有操作事件在操作列表中,才去获取相应的操作结果,如果没获取到则认为是第二网页的源代码中没有成功部署目标网页代码,反之则可以认为第二网页的源代码中成功部署了目标网页代码。
在本发明的一个实施例中,上述方法中,目标网页代码为统计用户网页行为的代码。
正如前面所提到的,统计用户网页行为的代码可以是用于获取广告的展现数据、点击数据等等。这些代码对应的服务器可以并非是第二网页对应的服务器,而是将获取到的用户网页行为数据发送至独立的统计服务器。
在本发明的一个实施例中,上述方法还包括:在第一网页中展示第二网页的源代码中是否成功部署目标网页代码的结果。
当所有检测步骤完成后,可以在第一网页中展示第二网页的源代码中是否成功部署目标网页代码的结果,也可以细化到目标网页代码中的哪些部分没有部署成功。
图2示出了根据本发明一个实施例的一种网页代码的检测装置的结构示意图,如图2所示,网页代码的检测装置200包括:
加载单元210,适于在第一网页中加载第二网页。
具体来说,第一网页可以是网页代码检测服务器所提供的前端页面,第二网页是待检测网页代码是否部署成功的网页。
资源获取单元220,适于通过网页间通信,从第二网页中获取与待检测的目标网页代码对应的指定资源。
其中的指定资源就是指网页资源,可以是文本、控件等网页元素。这是利用了需要检测的目标网页代码的效果而并非是代码本身来实现代码检测,因为实际上,部署目标网页代码必然是为了实现某些功能,那么直接判断这些功能是否可用,也可以从结果的角度入手来判断代码是否部署成功。
判断单元230,适于若获取成功,则判断为第二网页的源代码中成功部署了目标网页代码,否则判断为第二网页的源代码中未成功部署目标网页代码。
虽然上面的例子中都将目标网页代码用第三方网页代码进行了举例,实际上并不限于第三方网页代码,开发者如果想检测自己的代码是否开发成功,能否实现理想的效果,也可以采用上述方式。
可见,图2所示的装置,通过各单元的相互配合,在第一网页中加载第二网页,通过网页间通信的方式获取第二网页中与待检测的目标网页代码对应的指定资源,如果能够获取到,则认定为第二网页的源代码中成功部署了目标网页代码,反之则认为第二网页的源代码中未能成功部署目标网页代码。该技术方案提供了一种区别于代码内容匹配方式的网页代码检测的实现方式,对于改变了代码形式而没有改变代码本质的网页代码部署方式也能够根据获取的资源准确判断出对应的目标网页代码部署成功,而且比对资源的方式相较于代码与代码的比对效率也更高,因此在两方面都优于传统的方案。
在本发明的一个实施例中,上述装置中,加载单元210,适于通过第一网页中的网页地址输入框接收输入的第二网页的网页地址,根据接收的第二网页的网页地址,向第二网页的服务器请求第二网页的网页内容,并将网页内容在第一网页中的第二网页展示框内进行加载。
在本实施例中,第一网页就可以是网页代码检测服务器所提供的前端页面,上面还提供了一个网页地址输入框,其中,可以以正则表达式的方式提供网页地址输入规范,以禁止输入不合法的网页地址。
在接收到用户输入的第二网页的网页地址后,就可以向对应的服务器请求第二网页的网页内容,这个过程与普通的网页加载方式相类似,在此不再赘述。在获取到第二网页的网页内容后,将其在第二网页展示框内进行加载,这样根据网页间通信就可以获取加载了哪些资源,从而进行后续的判断。
在本发明的一个实施例中,上述装置中,加载单元210,适于通过第一网页中的指定iframe组件加载网页内容;和/或,调用window.open函数建立子窗口,在子窗口中加载网页内容。
在本例中给出了两种第二网页展示框的实现方法,可以单独实施或者结合实施,例如针对不同的网页采用不同的第二网页展示框的实现方式,或者是针对不同的浏览器采用不同的第二网页展示框的实现方式。
一种方法是利用第一网页中的iframe组件。iframe组件通常被所有浏览器所支持,可以用于创建包含另外一个文档的内联框架,把第二网页的网页地址放置在标签<iframe>和</iframe>之间即可实现。
另一种方法是利用window.open函数建立子窗口,具体示例为window.open(URL,name,features,replace),其中URL就是第二网页的网页地址,name是一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记<a>和<form>的属性target的值;feature同样是一个可选的字符串,声明了新窗口要显示的标准浏览器的特征;replace时候一个可选的布尔值,规定了装载到窗口的URL是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。
在本发明的一个实施例中,上述装置中,资源获取单元220,适于调用window.postMessage函数,从第二网页中获取指定资源。
在本实施例中给出了利用window.postMessage函数获取指定资源的示例,实际上在其他实施例中也可以利用设置钩子(hook)的方式来获取指定资源。
在本发明的一个实施例中,上述装置中,判断单元230,还适于响应于在第二网页中的操作事件,判断是否存在与操作事件对应的操作结果,是则判断为第二网页的源代码中成功部署了目标网页代码,否则判断为第二网页的源代码中未成功部署目标网页代码。
由于许多目标网页代码的功能是复合的,仅根据加载网页这一步骤并不能判断出目标网页代码是否部署成功,例如,用户点击某个按钮后,才触发了目标网页代码的逻辑,一种示例就是统计用户将哪些商品放入购物车,这就需要用户先点击“加入购物车”按钮。
具体来说,用户在通过第一网页中的网页展示框看到了第二网页之后,可以对其进行一系列的操作,这时就接收到了第二网页中的操作事件,第二网页应当根据自身的代码逻辑执行相应的处理,如果目标网页代码也与这些操作事件相关,那么也应该存在与操作事件对应的操作结果。在本实施例中就是根据上述关系来判断第二网页的源代码中是否成功部署了目标网页代码。当然,操作事件也可以由测试脚本生成。
在本发明的一个实施例中,上述装置中,第一网页中预置有操作列表,操作列表中存储有操作事件与对应的操作结果;判断单元230,适于若操作事件是操作列表中的操作事件,但未从第二网页中获取到与操作事件对应的操作结果,则判断为不存在与操作事件对应的操作结果。
在本实施例中,由于要进行操作结果的判断,因此在第一网页中预置有操作列表,因为许多第二网页中的操作事件并不是与目标网页代码相关的。也就是说,只有操作事件在操作列表中,才去获取相应的操作结果,如果没获取到则认为是第二网页的源代码中没有成功部署目标网页代码,反之则可以认为第二网页的源代码中成功部署了目标网页代码。
在本发明的一个实施例中,上述装置中,目标网页代码为统计用户网页行为的代码。
正如前面所提到的,统计用户网页行为的代码可以是用于获取广告的展现数据、点击数据等等。这些代码对应的服务器可以并非是第二网页对应的服务器,而是将获取到的用户网页行为数据发送至独立的统计服务器。
在本发明的一个实施例中,上述装置还包括:检测结果展示单元(图未示),适于在第一网页中展示第二网页的源代码中是否成功部署目标网页代码的结果。
当所有检测步骤完成后,可以在第一网页中展示第二网页的源代码中是否成功部署目标网页代码的结果,也可以细化到目标网页代码中的哪些部分没有部署成功。
综上所述,本发明的技术方案,通过在第一网页中加载第二网页,通过网页间通信的方式获取第二网页中与待检测的目标网页代码对应的指定资源,如果能够获取到,则认定为第二网页的源代码中成功部署了目标网页代码,反之则认为第二网页的源代码中未能成功部署目标网页代码。该技术方案提供了一种区别于代码内容匹配方式的网页代码检测的实现方式,对于改变了代码形式而没有改变代码本质的网页代码部署方式也能够根据获取的资源准确判断出对应的目标网页代码部署成功,而且比对资源的方式相较于代码与代码的比对效率也更高,因此在两方面都优于传统的方案。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网页代码的检测装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
图3示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质300存储有用于执行根据本发明的方法步骤的计算机可读程序代码310,例如可以被电子设备的处理器读取的程序代码,当这些程序代码由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。程序代码可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1、一种网页代码的检测方法,包括:
在第一网页中加载第二网页;
通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;
若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
A2、如A1所述的方法,其中,所述在第一网页中加载第二网页包括:
通过所述第一网页中的网页地址输入框接收输入的第二网页的网页地址;
根据接收的第二网页的网页地址,向所述第二网页的服务器请求所述第二网页的网页内容,并将所述网页内容在所述第一网页中的第二网页展示框内进行加载。
A3、如A2所述的方法,其中,所述将所述网页内容在所述第一网页中的第二网页展示框内进行加载包括:
通过所述第一网页中的指定iframe组件加载所述网页内容;
和/或,
调用window.open函数建立子窗口,在所述子窗口中加载所述网页内容。
A4、如A1所述的方法,其中,所述通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源包括:
调用window.postMessage函数,从所述第二网页中获取所述指定资源。
A5、如A1所述的方法,其中,该方法还包括:
响应于在所述第二网页中的操作事件,判断是否存在与所述操作事件对应的操作结果;
是则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
A6、如A5所述的方法,其中,所述第一网页中预置有操作列表,所述操作列表中存储有操作事件与对应的操作结果;
所述判断是否存在所述操作事件对应的操作结果包括:
若所述操作事件是所述操作列表中的操作事件,但未从所述第二网页中获取到与所述操作事件对应的操作结果,则判断为不存在与所述操作事件对应的操作结果。
A7、如A1所述的方法,其中,所述目标网页代码为统计用户网页行为的代码。
A8、如A1-A7中任一项所述的方法,其中,该方法还包括:
在所述第一网页中展示所述第二网页的源代码中是否成功部署所述目标网页代码的结果。
本发明的实施例还公开了B9、一种网页代码的检测装置,包括:
加载单元,适于在第一网页中加载第二网页;
资源获取单元,适于通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;
判断单元,适于若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
B10、如B9所述的装置,其中,
所述加载单元,适于通过所述第一网页中的网页地址输入框接收输入的第二网页的网页地址,根据接收的第二网页的网页地址,向所述第二网页的服务器请求所述第二网页的网页内容,并将所述网页内容在所述第一网页中的第二网页展示框内进行加载。
B11、如B10所述的装置,其中,
所述加载单元,适于通过所述第一网页中的指定iframe组件加载所述网页内容;和/或,调用window.open函数建立子窗口,在所述子窗口中加载所述网页内容。
B12、如B9所述的装置,其中,
所述资源获取单元,适于调用window.postMessage函数,从所述第二网页中获取所述指定资源。
B13、如B9所述的装置,其中,
所述判断单元,还适于响应于在所述第二网页中的操作事件,判断是否存在与所述操作事件对应的操作结果,是则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
B14、如B13所述的装置,其中,所述第一网页中预置有操作列表,所述操作列表中存储有操作事件与对应的操作结果;
所述判断单元,适于若所述操作事件是所述操作列表中的操作事件,但未从所述第二网页中获取到与所述操作事件对应的操作结果,则判断为不存在与所述操作事件对应的操作结果。
B15、如B9所述的装置,其中,所述目标网页代码为统计用户网页行为的代码。
B16、如B9-B15中任一项所述的装置,其中,该装置还包括:
检测结果展示单元,适于在所述第一网页中展示所述第二网页的源代码中是否成功部署所述目标网页代码的结果。
本发明的实施例还公开了C17、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如A1-A8中任一项所述的方法。

Claims (10)

1.一种网页代码的检测方法,包括:
在第一网页中加载第二网页;
通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;
若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
2.如权利要求1所述的方法,其中,所述在第一网页中加载第二网页包括:
通过所述第一网页中的网页地址输入框接收输入的第二网页的网页地址;
根据接收的第二网页的网页地址,向所述第二网页的服务器请求所述第二网页的网页内容,并将所述网页内容在所述第一网页中的第二网页展示框内进行加载。
3.如权利要求2所述的方法,其中,所述将所述网页内容在所述第一网页中的第二网页展示框内进行加载包括:
通过所述第一网页中的指定iframe组件加载所述网页内容;
和/或,
调用window.open函数建立子窗口,在所述子窗口中加载所述网页内容。
4.如权利要求1所述的方法,其中,所述通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源包括:
调用window.postMessage函数,从所述第二网页中获取所述指定资源。
5.如权利要求1所述的方法,其中,该方法还包括:
响应于在所述第二网页中的操作事件,判断是否存在与所述操作事件对应的操作结果;
是则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
6.如权利要求5所述的方法,其中,所述第一网页中预置有操作列表,所述操作列表中存储有操作事件与对应的操作结果;
所述判断是否存在所述操作事件对应的操作结果包括:
若所述操作事件是所述操作列表中的操作事件,但未从所述第二网页中获取到与所述操作事件对应的操作结果,则判断为不存在与所述操作事件对应的操作结果。
7.如权利要求1所述的方法,其中,所述目标网页代码为统计用户网页行为的代码。
8.如权利要求1-7中任一项所述的方法,其中,该方法还包括:
在所述第一网页中展示所述第二网页的源代码中是否成功部署所述目标网页代码的结果。
9.一种网页代码的检测装置,包括:
加载单元,适于在第一网页中加载第二网页;
资源获取单元,适于通过网页间通信,从所述第二网页中获取与待检测的目标网页代码对应的指定资源;
判断单元,适于若获取成功,则判断为所述第二网页的源代码中成功部署了所述目标网页代码,否则判断为所述第二网页的源代码中未成功部署所述目标网页代码。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-8中任一项所述的方法。
CN201711483462.3A 2017-12-29 2017-12-29 网页代码的检测方法、装置和计算机可读存储介质 Pending CN109992426A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711483462.3A CN109992426A (zh) 2017-12-29 2017-12-29 网页代码的检测方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711483462.3A CN109992426A (zh) 2017-12-29 2017-12-29 网页代码的检测方法、装置和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109992426A true CN109992426A (zh) 2019-07-09

Family

ID=67110011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711483462.3A Pending CN109992426A (zh) 2017-12-29 2017-12-29 网页代码的检测方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109992426A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674045A (zh) * 2019-09-24 2020-01-10 北京达佳互联信息技术有限公司 信息追踪检测方法、装置以及电子设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870551A (zh) * 2014-02-28 2014-06-18 小米科技有限责任公司 一种跨域数据获取的方法和装置
CN104572427A (zh) * 2013-10-15 2015-04-29 腾讯科技(深圳)有限公司 一种页面测试的方法、服务器及系统
CN105183453A (zh) * 2015-08-07 2015-12-23 安一恒通(北京)科技有限公司 基于网页的信息获取方法及装置
CN106204164A (zh) * 2016-08-03 2016-12-07 合网络技术(北京)有限公司 网页广告呈现的测试方法和装置
US20170199888A1 (en) * 2016-01-13 2017-07-13 Google Inc. Detecting visibility of a content item in a content item slot on a resource

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572427A (zh) * 2013-10-15 2015-04-29 腾讯科技(深圳)有限公司 一种页面测试的方法、服务器及系统
CN103870551A (zh) * 2014-02-28 2014-06-18 小米科技有限责任公司 一种跨域数据获取的方法和装置
CN105183453A (zh) * 2015-08-07 2015-12-23 安一恒通(北京)科技有限公司 基于网页的信息获取方法及装置
US20170199888A1 (en) * 2016-01-13 2017-07-13 Google Inc. Detecting visibility of a content item in a content item slot on a resource
CN106204164A (zh) * 2016-08-03 2016-12-07 合网络技术(北京)有限公司 网页广告呈现的测试方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈爽,贺荣: "《HTML5与JavaScript程序设计》", 30 November 2012, 北京交通大学出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674045A (zh) * 2019-09-24 2020-01-10 北京达佳互联信息技术有限公司 信息追踪检测方法、装置以及电子设备、存储介质
CN110674045B (zh) * 2019-09-24 2023-06-23 北京达佳互联信息技术有限公司 信息追踪检测方法、装置以及电子设备、存储介质

Similar Documents

Publication Publication Date Title
Zheng et al. Statically locating web application bugs caused by asynchronous calls
CN105940654B (zh) 特权静态被托管的web应用
US8788944B1 (en) Personalized mobile device application presentation using photograph-based capability detection
US20150363304A1 (en) Self-learning and self-validating declarative testing
US9910992B2 (en) Presentation of user interface elements based on rules
CN104932980B (zh) 软件自动测试方法及装置
CN104331369B (zh) 基于浏览器的网页检测方法及装置、服务器
US10901730B2 (en) Identifying equivalent javascript events
CN103559222B (zh) 浏览器中显示页面加载时间的方法和装置
US20160210365A1 (en) Executing a fast crawl over a computer-executable application
CN104504058B (zh) 一种页面展示方法和浏览器装置
CN108846286A (zh) 跨站脚本漏洞检测方法及装置
Solomos et al. The dangers of human touch: fingerprinting browser extensions through user actions
CN108427883A (zh) 网页挖矿脚本的检测方法及装置
CN104572914B (zh) 双核浏览器中进行广告拦截的方法和装置
CN109062799A (zh) 广告场景的回归测试方法、装置及系统
CN106302712B (zh) 处理网页数据的方法及装置
CN106909486B (zh) 处理业务异常的方法、装置及系统
US10083108B1 (en) Automated stack-based computerized application crawler
CN105373533B (zh) 一种页面链接地址的检测方法、客户端及装置
CN109992426A (zh) 网页代码的检测方法、装置和计算机可读存储介质
EP3506136B1 (en) Detecting stack cookie utilization in a binary software component using binary static analysis
Marenkov et al. Guideliner: A tool to improve web UI development for better usability
CN107026854A (zh) 漏洞验证方法及装置
CN110110521A (zh) 一种基于iOS应用的安全检测方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190709