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应用进行分析。
【技术特征摘要】
1.一种数据流分析方法,应用于浏览器端,其特征在于,包括:获取待分析的网页web应用对应的资源文件中的直译式脚本语言JavaScript代码;判断所述JavaScript代码的代码逻辑,根据所述代码逻辑在所述JavaScript代码中插入探针,其中所述探针是一段代码;运行插入探针的所述资源文件,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录;根据记录的数据对所述web应用进行分析。2.根据权利要求1所述的方法,其特征在于,根据所述探针获取所述web应用借助所述浏览器实现代码逻辑过程中的数据,并记录包括:基于所述浏览器中的预设分析代码,根据所述探针,获取所述web应用借助所述浏览器实现代码逻辑过程中的数据;将所述数据进行归一化,并存储。3.根据权利要求2所述的方法,其特征在于,根据记录的数据对所述web应用进行分析包括:读取记录的数据;根据所述数据中的数据对象、数据对象的产生时间、数据对象的输入和数据对象的输出,重构整个事件树;基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况,所述执行情况包括所述感兴趣数据对象执行所述浏览器机制的情况。4.根据权利要求3所述的方法,其特征在于,基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况包括:确定所述感兴趣数据对象在所述事件树中对应的节点,并将所述节点作为当前节点;基于所述事件树,以所述当前节点为基准,向前和向后遍历与所述当前节点存在直接和/或间接关系的节点对应的数据对象;根据所述数据对象确定所述感兴趣数据对象的可达集合。5.根据权利要求3所述的方法,其特征在于,基于所述事件树和获取的感兴趣数据对象,确定所述感兴趣数据对象在所述web应用的运行过程中的执行情况包括:获取感兴趣数据;根据所述感兴趣数据,确定所述感兴趣数据所在的感兴趣数据对象对应的...
【专利技术属性】
技术研发人员:张颖,朱晓旻,苏星,黄罡,姚伟,
申请(专利权)人:北京因特睿软件有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。