一种数据流分析方法、装置、设备及介质制造方法及图纸

技术编号:17109673 阅读:38 留言:0更新日期:2018-01-24 22:26
本发明专利技术公开了一种数据流分析方法、装置、设备及介质,涉及数据处理技术。该方法包括:获取待分析的web应用对应的资源文件中的JavaScript代码;判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,其中所述探针是一段代码;运行插入探针的所述资源文件,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录;根据记录的数据对所述web应用进行分析。本发明专利技术实施例提供一种数据流分析方法、装置、设备及介质,实现了对web应用借助浏览器实现代码逻辑过程中的数据的获取和分析。

A data flow analysis method, device, equipment, and medium

The invention discloses a data flow analysis method, a device, a device and a medium, which involves a data processing technique. The method includes: obtaining the corresponding web application of the resource files in the JavaScript code; the code logic judge JavaScript code, according to the logic of the code insertion probe in the JavaScript code, wherein the probe is inserted into a piece of code; running probe the resource file, according to the probe the web application code logic in the process of data, with the aid of the browser and record; according to the data analysis of the web application. The embodiment of the invention provides a data flow analysis method, device, device and medium, and realizes data acquisition and analysis for web application by browser in the process of code logic.

【技术实现步骤摘要】
一种数据流分析方法、装置、设备及介质
本专利技术实施例涉及数据处理技术,尤其涉及一种数据流分析方法、装置、设备及介质。
技术介绍
现如今大型与复杂前端的网页Web应用非常普及,然而对于这些复杂Web应用,实现应用功能的一部分业务逻辑与数据处理逻辑是借助浏览器运行实现的,因此无法直接从服务器返回的网页文档中提取Web应用执行过程中的所有数据。例如,Web应用的视图就是通过浏览器中的JavaScript引擎对相应JavaScript代码的转译运行进行渲染得到,其中渲染数据是无法直接从服务器返回的网页文档中提取的。现有的数据流分析方案主要分为以下两种,同时专利技术人在实现本专利技术的过程中发现现有技术存在如下缺陷:第一种方案使用了程序分析与约束求解领域中的一些方法,对JavaScript代码进行统一的静态分析或者动态分析。JavaScript代码的高度动态性使得静态程序分析手段如静态程序切片技术与副作用分析技术难以有效应用于JavaScript代码的分析。因为不同浏览器具有不同的特性,统一的动态分析手段无法针对浏览器的不同特性进行分析,从而导致该方案的分析存在局限性。第二种方案是让开发者在浏览器中使用前端调试工具如谷歌开发者工具包或Firebug对Web应用前端进行跟踪调试。但使用传统的插入断点、监视变量等方式跟踪查看数据的流向以进行调试的方法,也非常低效与耗时。
技术实现思路
本专利技术提供一种数据流分析方法、装置、设备及介质,以实现对web应用借助不同浏览器实现代码逻辑过程中的数据的获取和分析。第一方面,本专利技术实施例提供了一种数据流分析方法,应用于浏览器端,该方法包括:获取待分析的web应用对应的资源文件中的JavaScript代码;判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,其中所述探针是一段代码;运行插入探针的所述资源文件,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录;根据记录的数据对所述web应用进行分析。进一步的,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录包括:基于浏览器中的预设分析代码,根据所述探针,获取所述web应用借助所述浏览器实现代码逻辑过程中的数据;将所述数据进行归一化,并存储。进一步的,根据记录的数据对所述web应用进行分析包括:读取记录的数据;根据所述数据中的数据对象、数据对象的产生时间、数据对象的输入和数据对象的输出,重构整个事件树;基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况,所述执行情况包括所述感兴趣数据执行所述浏览器机制的情况。进一步的,基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况,所述执行情况包括所述感兴趣数据执行所述浏览器机制的情况包括:确定所述感兴趣数据对象在所述事件树中对应的节点,并将所述节点作为当前节点;基于所述事件树,以所述当前节点为基准,向前和向后遍历与所述当前节点存在直接和/或间接关系的节点对应的数据对象;根据所述数据对象确定所述感兴趣数据对象的可达集合。进一步的,基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况包括:获取感兴趣数据;根据所述感兴趣数据,确定所述感兴趣数据所在的感兴趣数据对象对应的节点;根据所述节点和所述事件树,确定所述感兴趣数据在所述web应用的运行过程中的执行情况。进一步的,判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,包括:判断所述JavaScript代码对应的资源文件是否是预设的忽略资源文件,若否,则判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针。进一步的,所述获取待分析的web应用对应的资源文件中的JavaScript代码包括:获取待分析的web应用对应的服务器返回的相关的资源文件;判断所述资源文件的类型,若所述资源文件是JavaScript文件,则获取其中的代码;若所述资源文件是超文本标记语言HTML文件,则根据设定标识确定内嵌的JavaScript代码。第二方面,本专利技术实施例还提供了一种数据流分析装置,应用于浏览器端,该装置包括:代码获取模块,用于获取待分析的web应用对应的资源文件中的JavaScript代码;逻辑判断模块,用于判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,其中所述探针是一段代码;数据获取模块,用于运行插入探针的所述资源文件,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录数据分析模块,用于根据记录的数据对所述web应用进行分析。第三方面,本专利技术实施例还提供了一种设备,所述设备包括:一个或多个处理器;如权利要求2-5中任一所述的浏览器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据流分析方法。第四方面,本专利技术实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的数据流分析方法。本专利技术实施例通过,在获取的待分析的web应用对应的JavaScript代码中,插入探针实现web应用借助浏览器实现代码逻辑过程中的数据的获取,根据获取的数据对web应用进行分析。因为是在源代码中插入探针,所以该方法能适用于具有不同特性的浏览器。又因为通过插入的探针自动获取对应代码逻辑过程中的数据,所以解决了使用传统的插入断点、监视变量等方式来跟踪调试数据,造成的低效和耗时的问题。附图说明图1为本专利技术实施例一提供的一种数据流分析方法的流程图;图2是本专利技术是实施例二提供的一种数据流分析方法的流程图;图3是本专利技术是实施例二提供的另一种数据流分析方法中的数据流获取部分的流程图;图4是本专利技术是实施例二提供的另一种数据流分析方法中的数据流分析部分的流程图;图5是本专利技术实施例三提供的一种数据流分析装置的结构示意图;图6为本专利技术实施例四提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种数据流分析方法的流程图。本实施例可适用于对借助浏览器实现代码逻辑过程中的数据进行分析的情况。该方法应用于浏览器端,可以由一种数据流分析装置来执行,该装置可以由软件和/或硬件的方式实现。参见图1,本实施例提供的一种数据流分析方法包括:S110、获取待分析的web应用对应的资源文件中的JavaScript代码。具体的,获取待分析的web应用对应的资源文件中的JavaScript代码过程可以包括:获取用户确定的待分析web应用的统一资源标识符;根据上述统一资源标识符,发送请求给上述web应用对应的服务器;接收所述服务器返回的网页数据;解析所述网本文档来自技高网...
一种数据流分析方法、装置、设备及介质

【技术保护点】
一种数据流分析方法,应用于浏览器端,其特征在于,包括:获取待分析的网页web应用对应的资源文件中的直译式脚本语言JavaScript代码;判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,其中所述探针是一段代码;运行插入探针的所述资源文件,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录;根据记录的数据对所述web应用进行分析。

【技术特征摘要】
1.一种数据流分析方法,应用于浏览器端,其特征在于,包括:获取待分析的网页web应用对应的资源文件中的直译式脚本语言JavaScript代码;判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,其中所述探针是一段代码;运行插入探针的所述资源文件,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录;根据记录的数据对所述web应用进行分析。2.根据权利要求1所述的方法,其特征在于,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录包括:基于所述浏览器中的预设分析代码,根据所述探针,获取所述web应用借助所述浏览器实现代码逻辑过程中的数据;将所述数据进行归一化,并存储。3.根据权利要求2所述的方法,其特征在于,根据记录的数据对所述web应用进行分析包括:读取记录的数据;根据所述数据中的数据对象、数据对象的产生时间、数据对象的输入和数据对象的输出,重构整个事件树;基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况,所述执行情况包括所述感兴趣数据对象执行所述浏览器机制的情况。4.根据权利要求3所述的方法,其特征在于,基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况包括:确定所述感兴趣数据对象在所述事件树中对应的节点,并将所述节点作为当前节点;基于所述事件树,以所述当前节点为基准,向前和向后遍历与所述当前节点存在直接和/或间接关系的节点对应的数据对象;根据所述数据对象确定所述感兴趣数据对象的可达集合。5.根据权利要求3所述的方法,其特征在于,基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况包括:获取感兴趣数据;根据所述感兴趣数据,确定所述感兴趣数据所在的感兴趣数据对象对应的...

【专利技术属性】
技术研发人员:张颖朱晓旻苏星黄罡姚伟
申请(专利权)人:北京因特睿软件有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1