CN110968498B - 一种代码检查方法及装置 - Google Patents

一种代码检查方法及装置 Download PDF

Info

Publication number
CN110968498B
CN110968498B CN201811158054.5A CN201811158054A CN110968498B CN 110968498 B CN110968498 B CN 110968498B CN 201811158054 A CN201811158054 A CN 201811158054A CN 110968498 B CN110968498 B CN 110968498B
Authority
CN
China
Prior art keywords
current object
code
checked
content
checking
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.)
Active
Application number
CN201811158054.5A
Other languages
English (en)
Other versions
CN110968498A (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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201811158054.5A priority Critical patent/CN110968498B/zh
Publication of CN110968498A publication Critical patent/CN110968498A/zh
Application granted granted Critical
Publication of CN110968498B publication Critical patent/CN110968498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种代码检查方法及装置,在获得当前待检查对象的检查内容后,可以确定与当前待检查对象对应的检查规则,并基于与当前待检查对象的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果,这样在获取到任意一个待检查对象的检查内容,则可以基于该待检查对象的检查规则进行检查,而当前待检查对象与第三方代码相关,使得当前待检查对象的检查内容也与第三方代码相关,从而实现基于检查规则对第三方代码的自动检查。

Description

一种代码检查方法及装置
技术领域
本发明涉及代码处理技术领域,更具体地说,尤其涉及一种代码检查方法及装置。
背景技术
目前网页渲染过程中会加载第三方代码,以通过加载第三方代码的方式使得网页具备第三方代码对应的功能,例如网页需要具备数据采集功能,则可以在网页中加载具有数据采集功能的数据采集代码,该数据采集代码则可视为是第三方代码。
对于网页中加载的第三方代码,需要对第三方代码进行检查以确定第三方代码是否符合规范以及是否能够正确执行相对应的功能,目前这些检查都是由技术人员手动检查,如网页加载第三方代码时在网页中形成一个控件,技术人员可以手动模拟用户对该控件的点击操作,然后点击操作后输出的内容进行检查以确认控件的功能或控件的设置是否符合规范。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的代码检查方法及装置,用于对待检查内容进行自动检查。技术方案如下:
本发明提供一种代码检查方法,所述方法包括:
获得当前待检查对象的检查内容,所述当前待检查对象与第三方代码相关,所述第三方代码在网页成功渲染后加载至所述网页中;
确定与所述当前待检查对象对应的检查规则;
基于与所述当前待检查对象对应的检查规则,对所述当前待检查对象的检查内容进行检查,得到所述当前待检查对象的检查结果。
优选的,所述获得当前待检查对象的检查内容包括:通过无头浏览器对应的数据输出接口获得所述当前待检查对象的检查内容,所述无头浏览器用于渲染网页并在网页成功渲染的情况下加载所述第三方代码至网页中。
优选的,所述方法还包括:
如果所获得的检查内容为空,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
优选的,所述方法还包括:
如果所获得的检查内容为空,则获得所述网页的网页代码;
通过对所述网页的网页代码进行检查,确定所述网页的网页代码中是否包含调用所述第三方代码的代码内容。
优选的,所述方法还包括:如果确定所述网页的网页代码中包含调用所述第三方代码的代码内容,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
本发明还提供一种代码检查装置,所述装置包括:
获得单元,用于获得当前待检查对象的检查内容,所述当前待检查对象与第三方代码相关,所述第三方代码在网页成功渲染后加载至所述网页中;
确定单元,用于确定与所述当前待检查对象对应的检查规则;
检查单元,用于基于与所述当前待检查对象对应的检查规则,对所述当前待检查对象的检查内容进行检查,得到所述当前待检查对象的检查结果。
优选的,所述确定单元,还用于如果所获得的检查内容为空,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
所述获得单元,还用于如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并触发所述确定单元以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
所述检查单元,还用于如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
优选的,所述获得单元,还用于如果所获得的检查内容为空,则获得所述网页的网页代码;
所述检查单元,还用于通过对所述网页的网页代码进行检查,确定所述网页的网页代码中是否包含调用所述第三方代码的代码内容。
本发明还提供一种存储介质,所述存储介质上存储有程序,所述程序被处理器执行时实现上述代码检查方法。
本发明还提供一种处理器,所述处理器用于运行程序,其中所述程序运行时执行上述代码检查方法。
借由上述技术方案,本发明提供的代码检查方法及装置,在获得当前待检查对象的检查内容后,可以确定与当前待检查对象对应的检查规则,并基于与当前待检查对象的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果,这样在获取到任意一个待检查对象的检查内容,则可以基于该待检查对象的检查规则进行检查,而当前待检查对象与第三方代码相关,使得当前待检查对象的检查内容也与第三方代码相关,从而实现基于检查规则对第三方代码的自动检查。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本公开的示例性实施例提供的一种代码检查方法的流程图;
图2示出了本公开的示例性实施例提供的另一种代码检查方法的流程图;
图3示出了本公开的示例性实施例提供的再一种代码检查方法的流程图;
图4示出了本公开的示例性实施例提供的一种代码检查装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,其示出了本公开的示例性实施例提供的一种代码检查方法的流程图,用于实现对第三方代码的自动检查,其中图1所示代码检查方法可以包括以下步骤:
101:获得当前待检查对象的检查内容,其中当前待检查对象与第三方代码相关,第三方代码在网页成功渲染后加载至网页中。
可以理解的是:为了能够加载第三方代码,网页的网页代码中需要写入调用第三方代码的类,这样在网页成功渲染后通过该类将第三方代码加载至网页中,以使得网页借助于第三方代码具备该第三方代码规定的操作等。
在本实施例中,与第三方代码相关的当前待检查对象包括但不限于包括:第三方代码中的代码内容、模拟第三方代码所规定的操作和模拟网页加载第三方代码过程中产生的操作中的至少一种,其中第三方代码中的代码内容可以是第三方代码中的至少部分代码或第三方代码中的特殊符号,如第三方代码中的括号、分隔符、串联符和成员访问运算符等中的至少一种特殊符号。模拟第三方代码所规定的操作是一种自动模拟,如在网页渲染前设置需要对第三方代码所规定的哪些操作进行模拟,这样在网页成功渲染且加载上第三方代码的情况下,可以自动触发模拟提前设置的操作,如模拟第三方代码规定的鼠标点击操作、模拟第三方代码规定的控件行为等。同样的模拟网页加载第三方代码过程中产生的操作也是一种自动模拟,例如自动模拟网页加载第三方代码发出的特定请求等。对于模拟第三方代码所规定的哪些操作以及网页加载第三方代码过程中产生的哪些操作,在本实施例中不进行限定,其可以根据实际需求随机设置。
而上述当前待检查对象的检查内容则是基于当前待检查对象,得到的与第三方代码相关的内容,如当前待检查对象为第三方代码中的代码内容,检查内容则是第三方代码中的代码内容;如果当前待检查对象为模拟第三方代码所规定的操作,则检查内容则是模拟第三方代码所规定的操作输出与操作相关的信息,如操作结果、操作对象等,对于不同操作来说检查内容可能会有所不同,如模拟第三方代码规定的鼠标点击操作,检查内容可以包括:点击位置的坐标,鼠标的回滚距离等,而如果模拟第三方代码规定的控件行为,检查内容可以包括:控件的名称、控件在网页中的位置等。
在本实施例中当前待检查对象的检查内容的获得方式包括但不限于如下方式:
一种方式:通过无头浏览器对应的数据输出接口获得当前待检查对象的检查内容,无头浏览器用于渲染网页并在网页成功渲染的情况下加载第三方代码至网页中。即在通过无头浏览器成功渲染网页且加载第三方代码至网页中,通过无头浏览器对应的数据输出接口将检查内容输出,由于无头浏览器可以在后台运行成功渲染的网页(即虽然渲染出可视化的界面但是终端上不进行显示),使得在后台对当前待检查对象进行监控时不会影响当前终端中的操作,从而使得对象监控和终端的操作互不影响。
另一种方式:通过爬虫爬取的方式获得当前待检查对象的检查内容,例如在运行本实施例提供的代码检查方法的服务器中设置一个爬虫,通过该爬虫爬取服务器中的所有内容,并从爬取到的所有内容中提取出当前待检查对象的检查内容,如基于当前待检查对象的标识信息等爬取,具体过程本实施例不再阐述。
102:确定与当前待检查对象对应的检查规则,以通过检查规则来检查当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定,因此若当前待检查对象不同时,确定的检查规则可能也不同。
例如当前待检查对象为第三方代码中的代码内容时,检查规则可以是检查第三方代码中代码书写是否符合该第三方代码使用的语言要求和第三方代码中的特殊符号是否是预设特殊符号等,其中预设特殊符号可以根据实际要求而定;如果当前待检查对象为模拟第三方代码所规定的操作,则会基于不同操作设定不同的检查规则;例如当前待检查对象为模拟第三方代码所规定的鼠标点击,则检查规则可以是检查鼠标点击位置和鼠标回滚距离是否符合第三方代码中的规定;如果当前待检查对象为模拟控件行为,则检查规则可以是检查控件的名称是否符合第三方代码中规定的名称。
上述仅是对检查规则的一些举例,在本实施例中不对检查规则的内容进行限定,其可以根据实际需求而设定,对此本实施例不再详述。
在本实施例中,确定与当前待检查对象对应的检查规则的方式有但不限于有:一种方式是:获取用户输入的与当前待检查对象对应的检查规则;另一种方式是:从预设规则库中获取与当前待检查对象对应的检查规则,其中该预设规则库中可以预先设置与至少一个第三方代码相关的待检查对象的检查规则,并且为了区分检查规则,可以为检查规则设置对应的标识信息,如将待检查对象的标识信息确定为检查规则的标识信息,如待检查对象的标识信息至少包括但不限于包括:与其相关的第三方代码的标识信息和该待检查对象所要检查的信息,以基于待检查对象的标识信息来确定唯一的检查规则。当然还可以采用其他方式,对此本实施例不再进行阐述。
103:基于与当前待检查对象对应的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果。其中当前待检查对象的检查结果用于表明当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定。
以当前待检查对象是模拟第三方代码规定的鼠标点击操作,则检查内容是模拟该鼠标点击操作时输出的点击位置的坐标和鼠标的回滚距离,因此通过检查规则检查点击位置的坐标和鼠标的回滚距离是否是符合第三方代码中对鼠标点击的规定,如检查点击位置的坐标是否位于第三方代码规定的坐标范围内,以及鼠标的回滚距离是否超出第三方代码允许的回滚距离,若符合则得到表明当前待检查对象的检查内容符合与该当前待检查对象对应的检查规则的规定的检查结果,若不符合则得到表明当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定的检查结果。
从上述技术方案可知,在获得当前待检查对象的检查内容后,可以确定与当前待检查对象对应的检查规则,并基于与当前待检查对象的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果,这样在获取到任意一个待检查对象的检查内容,则可以基于该待检查对象的检查规则进行检查,而当前待检查对象与第三方代码相关,使得当前待检查对象的检查内容也与第三方代码相关,从而实现基于检查规则对第三方代码的自动检查。
请参阅图2,其示出了本公开的示例性实施例提供的另一种代码检查方法的流程图,阐述了在所获得的检查内容为空的情况下的代码检查方式,可以包括以下步骤:
201:获得当前待检查对象的检查内容,其中当前待检查对象与第三方代码相关,第三方代码在网页成功渲染后加载至网页中。
在本实施例中,关于当前待检查对象的说明以及获取方式请参阅上述方法实施例中步骤101中的相关说明,对此本实施例不再阐述。
但是在这里需要说明的一点是:图1所示实施例针对的是网页成功渲染且网页成功加载第三方代码的应用场景中,由此意味着上述图1所示实施例中步骤101所获得的检查内容不会出现检查内容为空的情况,而本实施例中步骤201不限于网页成功渲染且网页成功加载第三方代码的应用场景,本实施例是对网页渲染过程以及第三方代码加载过程的各种情况的一个整体说明。
202:判断所获得的检查内容是否为空,如果不为空,则执行步骤203,如果为空,则执行步骤205。
如果所获得的检查内容不为空,说明网页成功渲染且网页成功加载第三方代码,此时则依次执行步骤203和步骤204,以对当前待检查对象的检查内容进行检查;如果所获得的检查内容为空,说明网页成功渲染但网页没有成功加载第三方代码或者网页没有成功渲染或者网页代码中没有加载调用第三方代码的代码内容,此时则需要执行步骤205。
203:如果所获得的检查内容不为空,确定与当前待检查对象对应的检查规则。
204:基于与当前待检查对象对应的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果。
在本实施例中,步骤203和步骤204:与上述步骤102和步骤103相同,对此本实施例不再阐述。
205:如果所获得的检查内容为空,则确定当前待检查对象,当前待检查对象是第三方代码中的代码内容和模拟第三方代码所规定的操作中的至少一个,从而在所获得的检查内容为空时确定当前待检查对象为哪种对象,并在当前待检查对象是第三方代码中的代码内容时执行步骤206;在当前待检查对象是模拟第三方代码所规定的操作时执行步骤207。
在本实施例中,当前待检查对象是第三方代码中的代码内容或模拟第三方代码所规定的操作仅是举例说明,在实际应用中可能还存在其他类型的当前待检查对象,则对于其他类型的当前待检查对象,如果所获得的检查内容为空,也需要确定是否再次主动获取内容进行检查,对于检查方式本实施例不再一一阐述。
206:如果确定当前待检查对象是第三方代码中的代码内容,则获取第三方代码,并返回依次执行步骤203和204,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定。
也就是说如果确定当前待检查对象是第三方代码中的代码内容,说明此时是对第三方代码进行静态检查,进一步需要获取第三方代码,如可通过但不限于通过在获得当前待检查对象的检查内容时额外通过其他参数标注第三方代码的标识信息,以通过第三方代码的标识信息获取到第三方代码。在获取到第三方代码后确定检查规则并基于检查规则对当前待检查对象的检查内容,如需要检查的代码内容进行检查,从而得到该当前待检查对象的检查结果。
例如在当前待检查对象是检查第三方代码的代码书写,则当前待检查对象的检查内容可以是第三方代码的全部内容,检查规则是该第三方代码对应的编写语言的书写规范,通过该书写规范来检查第三方代码的全部内容的书写是否符合书写规范的要求,如果是,则得到的检查结果表明该当前待检查对象的检查内容符合与该当前待检查对象对应的检查规则的规定,如果否,则得到的检查结果表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
再例如在当前待检查对象是检查第三方代码中的特殊符合,则当前待检查对象的检查内容是第三方代码中采用的至少部分特殊符号,检查规则是为第三方代码规定的特殊符号,如果检查内容中的特殊符号与为第三方代码规定的特殊符号相同,则得到的检查结果表明该当前待检查对象的检查内容符合与该当前待检查对象对应的检查规则的规定,如果否,则得到的检查结果表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
207:如果确定当前待检查对象是模拟第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
也就是说如果确定当前待检查对象是模拟第三方代码所规定的操作,说明此时是对第三方代码所规定的操作的动态检查,而此时网页可能没有成功渲染或者虽然网页成功渲染但是没有成功加载第三方代码,则在此种情况下对于第三方代码所规定的操作的动态检查会直接输出视其不符合检查规则的规定的检查结果。
在这里需要说明的一点是:如果所获得的检查内容为空,在本实施例可以仅执行上述步骤205、步骤206和步骤207中的任一步骤,或者对上述步骤205、步骤206和步骤207中的任意两个步骤进行组合来执行,对此本实施例不再采用附图方式说明。
从上述技术方案可知,如果所获得的检查内容为空,可以确定当前待检查对象的类型,并基于当前待检查对象的类型采用不同方式对当前待检查对象进行检查,实现基于当前待检查对象的类型有区分的检查,并且如果确定当前待检查对象是模拟第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,提高检查效率。
请参阅图3,其示出了本公开的示例性实施例提供的再一种代码检查方法的流程图,可以包括以下步骤:
301:获得当前待检查对象的检查内容,其中当前待检查对象与第三方代码相关,第三方代码在网页成功渲染后加载至网页中。
在本实施例中,关于当前待检查对象的说明以及获取方式请参阅上述方法实施例中步骤101中的相关说明,对此本实施例不再阐述。
但是在这里需要说明的一点是:图1所示实施例针对的是网页成功渲染且网页成功加载第三方代码的应用场景中,由此意味着上述图1所示实施例中步骤101所获得的检查内容不会出现检查内容为空的情况,而本实施例中步骤301不限于网页成功渲染且网页成功加载第三方代码的应用场景,本实施例是对网页渲染过程以及第三方代码加载过程的各种情况的一个整体说明。
302:判断所获得的检查内容是否为空,如果不为空,则执行步骤303,如果为空,则执行步骤305。
如果所获得的检查内容不为空,说明网页成功渲染且网页成功加载第三方代码,此时则依次执行步骤303和步骤304,以对当前待检查对象的检查内容进行检查;如果所获得的检查内容为空,说明网页成功渲染但网页没有成功加载第三方代码或者网页没有成功渲染或者网页代码中没有加载调用第三方代码的代码内容,此时则需要执行步骤305。
303:如果所获得的检查内容不为空,确定与当前待检查对象对应的检查规则。
304:基于与当前待检查对象对应的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果。
在本实施例中,步骤303和步骤304:与上述步骤102和步骤103相同,对此本实施例不再阐述。
305:如果所获得的检查内容为空,则获得网页的网页代码。例如可通过但不限于通过在获得当前待检查对象的检查内容时额外通过其他参数标注网页的标识信息,以通过网页的标识信息获取到网页代码,如网页的标识信息可以是网页的URL(Uniform ResourceLocator,统一资源定位符),以通过该URL来定位网页的网页代码。
306:通过对网页的网页代码进行检查,确定网页的网页代码中是否包含调用第三方代码的代码内容,以确定是何种原因导致所获得的检查内容为空。
例如如果通过对网页的网页代码进行检查,确定出网页的网页代码中包含调用第三方代码的代码内容,由此确定导致所获得的检查内容为空的原因是:网页没有成功渲染和网页成功渲染但没有成功加载第三方代码中的任意一种;如果通过对网页的网页代码进行检查,确定出网页的网页代码中没有包含调用第三方代码的代码内容,由此可以确定导致所获得的检查内容为空的原因是:网页代码的问题。
此外,在对网页的网页代码进行检查后,如果确定网页的网页代码中包含调用第三方代码的代码内容,则可以执行上述执行上述步骤205至步骤207中的至少一个步骤,例如果确定网页的网页代码中包含调用第三方代码的代码内容,则确定当前待检查对象,当前待检查对象是第三方代码中的代码内容和模拟第三方代码所规定的操作中的至少一个,对此本实施例不再一一进行详细阐述。
对于上述所有方法实施例来说,在获得当前待检查对象的检查结果的情况下,可以向终端发送通知以通知使用终端的用户进行检查结果的下载,其中通知可以以任意一种方式发送,如短信、邮件和即时通信方式中的任意一种,然后在终端下载检查结果后可由终端进行检查结果的存储,例如存储在第三方代码的结果文件中。
与上述方法实施例相对应,本发明实施例还提供一种代码检查装置,其结构如图4所示,可以包括:获得单元11、确定单元12和检查单元13。
获得单元11,用于获得当前待检查对象的检查内容,当前待检查对象与第三方代码相关,第三方代码在网页成功渲染后加载至网页中。在本实施例中,与第三方代码相关的当前待检查对象包括但不限于包括:第三方代码中的代码内容、模拟第三方代码所规定的操作和模拟网页加载第三方代码过程中产生的操作中的至少一种,具体说明请参阅上述方法实施例。
其中获得单元11获得当前待检查对象的检查内容的获得方式包括但不限于如下方式:
一种方式:通过无头浏览器对应的数据输出接口获得当前待检查对象的检查内容,无头浏览器用于渲染网页并在网页成功渲染的情况下加载第三方代码至网页中;另一种方式:通过爬虫爬取的方式获得当前待检查对象的检查内容,具体详见上述方法实施例。
确定单元12,用于确定与当前待检查对象对应的检查规则,以通过检查规则来检查当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定,因此若当前待检查对象不同时,确定的检查规则可能也不同,具体的举例说明请参阅方法实施例。
在本实施例中,确定与当前待检查对象对应的检查规则的方式有但不限于有:一种方式是:获取用户输入的与当前待检查对象对应的检查规则;另一种方式是:从预设规则库中获取与当前待检查对象对应的检查规则,具体详见上述方法实施例。
检查单元13,用于基于与当前待检查对象对应的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果。其中当前待检查对象的检查结果用于表明当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定,具体说明请参阅方法实施例,对此本实施例不再详述。
从上述技术方案可知,在获得当前待检查对象的检查内容后,可以确定与当前待检查对象对应的检查规则,并基于与当前待检查对象的检查规则,对当前待检查对象的检查内容进行检查,得到当前待检查对象的检查结果,这样在获取到任意一个待检查对象的检查内容,则可以基于该待检查对象的检查规则进行检查,而当前待检查对象与第三方代码相关,使得当前待检查对象的检查内容也与第三方代码相关,从而实现基于检查规则对第三方代码的自动检查。
在一些情况下,例如网页成功渲染但网页没有成功加载第三方代码或者网页没有成功渲染或者网页代码中没有加载调用第三方代码的代码内容,可能会导致所获得的代码内容为空,在此情况下,本实施例的代码检查装置中的各个单元还用于执行以下功能中的至少一种:
确定单元12还用于如果所获得的检查内容为空,则确定当前待检查对象,当前待检查对象是第三方代码中的代码内容和模拟第三方代码所规定的操作中的至少一个。和/或,
获得单元11,还用于如果确定当前待检查对象是第三方代码中的代码内容,则获取第三方代码,并触发确定单元12以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定。和/或,
检查单元13,还用于如果确定当前待检查对象是模拟第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
此外获得单元12,还用于如果所获得的检查内容为空,则获得网页的网页代码。并由检查单元13通过对网页的网页代码进行检查,确定网页的网页代码中是否包含调用第三方代码的代码内容,以确定是何种原因导致所获得的检查内容为空,具体功能说明还请参阅上述方法实施例。
并且在检查单元13在对网页的网页代码进行检查后,如果确定网页的网页代码中包含调用第三方代码的代码内容,本实施例的代码检查装置还用于执行上述确定当前待检查对象、如果确定当前待检查对象是第三方代码中的代码内容,则获取第三方代码以及如果确定当前待检查对象是模拟第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果中的至少一种功能,具体由代码检查装置中的哪些单元执行请参阅上述介绍。
所述代码检查装置包括处理器和存储器,上述获得单元11、确定单元12和检查单元13等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现基于检查规则对第三方代码的自动检查。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述代码检查方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述代码检查方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获得当前待检查对象的检查内容,所述当前待检查对象与第三方代码相关,所述第三方代码在网页成功渲染后加载至所述网页中;
确定与所述当前待检查对象对应的检查规则;
基于与所述当前待检查对象对应的检查规则,对所述当前待检查对象的检查内容进行检查,得到所述当前待检查对象的检查结果。
优选的,所述获得当前待检查对象的检查内容包括:通过无头浏览器对应的数据输出接口获得所述当前待检查对象的检查内容,所述无头浏览器用于渲染网页并在网页成功渲染的情况下加载所述第三方代码至网页中。
优选的,处理器执行程序时还实现以下步骤:
如果所获得的检查内容为空,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
优选的,处理器执行程序时还实现以下步骤:
如果所获得的检查内容为空,则获得所述网页的网页代码;
通过对所述网页的网页代码进行检查,确定所述网页的网页代码中是否包含调用所述第三方代码的代码内容。
优选的,处理器执行程序时还实现以下步骤:如果确定所述网页的网页代码中包含调用所述第三方代码的代码内容,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获得当前待检查对象的检查内容,所述当前待检查对象与第三方代码相关,所述第三方代码在网页成功渲染后加载至所述网页中;
确定与所述当前待检查对象对应的检查规则;
基于与所述当前待检查对象对应的检查规则,对所述当前待检查对象的检查内容进行检查,得到所述当前待检查对象的检查结果。
优选的,所述获得当前待检查对象的检查内容包括:通过无头浏览器对应的数据输出接口获得所述当前待检查对象的检查内容,所述无头浏览器用于渲染网页并在网页成功渲染的情况下加载所述第三方代码至网页中。
优选的,当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:
如果所获得的检查内容为空,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
优选的,当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:
如果所获得的检查内容为空,则获得所述网页的网页代码;
通过对所述网页的网页代码进行检查,确定所述网页的网页代码中是否包含调用所述第三方代码的代码内容。
优选的,当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:如果确定所述网页的网页代码中包含调用所述第三方代码的代码内容,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (8)

1.一种代码检查方法,其特征在于,所述方法包括:
获得当前待检查对象的检查内容,所述当前待检查对象与第三方代码相关,所述第三方代码在网页成功渲染后加载至所述网页中;
确定与所述当前待检查对象对应的检查规则;
基于与所述当前待检查对象对应的检查规则,对所述当前待检查对象的检查内容进行检查,得到所述当前待检查对象的检查结果;
如果所获得的检查内容为空,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
2.根据权利要求1所述的方法,其特征在于,所述获得当前待检查对象的检查内容包括:通过无头浏览器对应的数据输出接口获得所述当前待检查对象的检查内容,所述无头浏览器用于渲染网页并在网页成功渲染的情况下加载所述第三方代码至网页中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所获得的检查内容为空,则获得所述网页的网页代码;
通过对所述网页的网页代码进行检查,确定所述网页的网页代码中是否包含调用所述第三方代码的代码内容。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:如果确定所述网页的网页代码中包含调用所述第三方代码的代码内容,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;和/或,
如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并执行确定与所述当前待检查对象对应的检查规则的步骤,以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;和/或,
如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
5.一种代码检查装置,其特征在于,所述装置包括:
获得单元,用于获得当前待检查对象的检查内容,所述当前待检查对象与第三方代码相关,所述第三方代码在网页成功渲染后加载至所述网页中;
确定单元,用于确定与所述当前待检查对象对应的检查规则;
检查单元,用于基于与所述当前待检查对象对应的检查规则,对所述当前待检查对象的检查内容进行检查,得到所述当前待检查对象的检查结果;
所述确定单元,还用于如果所获得的检查内容为空,则确定所述当前待检查对象,所述当前待检查对象是所述第三方代码中的代码内容和模拟所述第三方代码所规定的操作中的至少一个;
所述获得单元,还用于如果确定所述当前待检查对象是第三方代码中的代码内容,则获取所述第三方代码,并触发所述确定单元以得到该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容是否符合与该当前待检查对象对应的检查规则的规定;
所述检查单元,还用于如果确定所述当前待检查对象是模拟所述第三方代码所规定的操作,则直接输出该当前待检查对象的检查结果,该当前待检查对象的检查结果用于表明该当前待检查对象的检查内容不符合与该当前待检查对象对应的检查规则的规定。
6.根据权利要求5所述的装置,其特征在于,所述获得单元,还用于如果所获得的检查内容为空,则获得所述网页的网页代码;
所述检查单元,还用于通过对所述网页的网页代码进行检查,确定所述网页的网页代码中是否包含调用所述第三方代码的代码内容。
7.一种存储介质,其特征在于,所述存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至4任意一项所述的代码检查方法。
8.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述处理器用于运行所述存储器中存储的程序,其中所述程序运行时执行如权利要求1至4任意一项所述的代码检查方法。
CN201811158054.5A 2018-09-30 2018-09-30 一种代码检查方法及装置 Active CN110968498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811158054.5A CN110968498B (zh) 2018-09-30 2018-09-30 一种代码检查方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811158054.5A CN110968498B (zh) 2018-09-30 2018-09-30 一种代码检查方法及装置

Publications (2)

Publication Number Publication Date
CN110968498A CN110968498A (zh) 2020-04-07
CN110968498B true CN110968498B (zh) 2023-04-07

Family

ID=70028874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811158054.5A Active CN110968498B (zh) 2018-09-30 2018-09-30 一种代码检查方法及装置

Country Status (1)

Country Link
CN (1) CN110968498B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004705A (zh) * 2006-01-18 2007-07-25 北京大学 基于截取器的软件在线校验方法
CN101013966A (zh) * 2007-02-09 2007-08-08 华为技术有限公司 一种配置规则检查方法及装置
CN103309804A (zh) * 2013-04-08 2013-09-18 中国电子科技集团公司第十研究所 自动化代码规则检查平台
CN106294164A (zh) * 2016-08-15 2017-01-04 中国银行股份有限公司 一种代码检查方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012059026A (ja) * 2010-09-09 2012-03-22 Hitachi Ltd ソースコード変換方法およびソースコード変換プログラム
IN2014MU00041A (zh) * 2014-01-06 2015-08-21 Tata Consultancy Services Ltd

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004705A (zh) * 2006-01-18 2007-07-25 北京大学 基于截取器的软件在线校验方法
CN101013966A (zh) * 2007-02-09 2007-08-08 华为技术有限公司 一种配置规则检查方法及装置
CN103309804A (zh) * 2013-04-08 2013-09-18 中国电子科技集团公司第十研究所 自动化代码规则检查平台
CN106294164A (zh) * 2016-08-15 2017-01-04 中国银行股份有限公司 一种代码检查方法及装置

Also Published As

Publication number Publication date
CN110968498A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
CN108628751B (zh) 一种无用依赖项检测方法及装置
CN108459954B (zh) 应用程序漏洞检测方法和装置
CN110866258B (zh) 快速定位漏洞方法、电子装置及存储介质
CN112256296A (zh) 基于Weex的快递服务APP更新方法、装置、设备及存储介质
CN110134611B (zh) 内存泄漏分析方法、装置、终端和存储介质
CN109828780B (zh) 一种开源软件的识别方法及装置
CN109598526B (zh) 媒体贡献的分析方法及装置
CN113448862A (zh) 软件版本测试方法、装置及计算机设备
CN113656107A (zh) 移动应用的加载方法、装置及电子设备
CN105760761A (zh) 软件行为分析方法和装置
CN109388568B (zh) 代码测试方法和装置
CN103390129B (zh) 检测统一资源定位符安全性的方法和装置
CN113869789A (zh) 一种风险监控的方法、装置、计算机设备及存储介质
CN110968498B (zh) 一种代码检查方法及装置
CN113129004A (zh) 交易安全性检测方法及装置
CN110708270B (zh) 异常链接检测方法以及装置
CN112667934A (zh) 动态模拟图展示方法、装置、电子设备和计算机可读介质
CN113031995B (zh) 一种更新规则的方法、装置、存储介质以及电子设备
CN110968754B (zh) 一种爬虫翻页策略的检测方法及装置
CN111078574A (zh) 生成影响分析报告的方法及装置
CN110929184A (zh) 链接的显示方法、系统、存储介质和处理器
CN109561121B (zh) 监控部署的方法及装置
CN109165127B (zh) 问题接口的定位方法、装置及电子设备
CN112015658A (zh) 一种用于软件集成测试用例的生成方法及装置
CN105357265A (zh) 一种识别浏览器被劫持的方法

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
GR01 Patent grant
GR01 Patent grant