[发明专利]基于静态分析和动态运行的Web应用JavaScript代码原子性违反检测在审
申请号: | 201510626506.8 | 申请日: | 2015-09-25 |
公开(公告)号: | CN105095092A | 公开(公告)日: | 2015-11-25 |
发明(设计)人: | 许蕾;王德智;李言辉;徐宝文 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210023 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 静态 分析 动态 运行 web 应用 javascript 代码 原子 违反 检测 | ||
1.基于静态分析和动态运行的Web应用JavaScript(简称JS)代码原子性违反检测方法,其特征是:静态分析JS代码,获取JS中涉及到异步调用的函数和方法,保证代码上的覆盖;跨语言平台的动态插桩记录机制,在异步调用函数中设置探测点,不仅能得到JS程序中的元素,还能记录HTML代码中的元素,提高检测潜在原子性违反的准确率;根据Web应用请求到回应整个过程中涉及的元素,设计原子性违反判定规则,进而开展有效的原子性违反检测。
2.根据权利要求1所述的基于静态分析和动态运行的Web应用JS代码原子性违反检测方法,其特征是包括以下步骤:
1)静态分析JS代码,记录涉及异步调用的元素类型;
2)异步调用操作抽象化,划分模块,设计原子性违反的判定规则;
3)JS代码插桩,设置函数探测点;
4)动态运行Web应用,获取运行轨迹,生成判定条件,;
5)结合运行轨迹中的记录元素,编写分析脚本,得到原子性违反检测结果。
3.根据权利要求2所述的基于静态分析和动态运行的Web应用JS代码原子性违反检测方法,其特征是步骤1)中,根据MVC(ModelViewController,模型视图控制器)体系和JS前端框架请求事件机制,采用静态方法分析Web应用中JS代码,记录异步调用操作涉及到的元素,包括函数名、方法名、调用中传递的参数及回调函数中的语句,以便后续对运行轨迹进行筛选。
4.根据权利要求2所述的基于静态分析和动态运行的Web应用JS代码原子性违反检测方法,其特征是步骤2)中,根据Web应用中整体流程情况,利用JS_WALA工具生成一个应用的异步调用关系图;然后,将关系图划分为各个关系块图,每个图定义为一个原子性操作模式,根据各个原子性操作模式具体内容的不同,设计出原子性违反判定的基本规则:
规则1:同一个事件源在异步调用了某一个函数时,若回调函数还没有被调用或还没有执行相应的操作,该事件源就调用了另一个异步调用;
规则2:两个异步调用含有对某一个全局变量操作或有类似发送数据函数体被不同数据源同时调用;
规则3:目标对象处理请求过程中,还没有返回相应结果时,其它事件源对相同目标对象发出类似的异步调用;
规则4:当一个异步调用中回调函数的操作涉及某一个事件源,而在相应操作实施前,涉及的事件源有了其它异步调用;
规则5:多个回调函数中的回调操作中均涉及对同一个事件源的操作。
5.根据权利要求2所述的基于静态分析和动态运行的Web应用JS代码原子性违反检测方法,其特征是步骤3)中,依据静态分析记录的元素,对源代码进行插桩;代码的插桩主要集中于函数间的调用,为了减少开销、保证插桩的效率,把探测点放置在函数第一条执行语句前面;当程序运行到探测点时,会进入插桩的记录函数中,既可以记录函数内执行路径,也可以探测函数间调用的顺序。
6.根据权利要求2所述的基于静态分析和动态运行的Web应用JS代码原子性违反检测方法,其特征是步骤4)中,设置满足需求的影子值,依托插桩工具Jalangi对JS代码进行插桩;影子值设置为对象类型和函数间调用的符号化表示,保证插桩能获取异步调用中具体的函数执行顺序和回调操作;依据原子性违反判定规则,将涉及异步调用操作的元素信息转换成判定条件,以检测Web应用中的原子性违反。
7.根据权利要求2所述的基于静态分析和动态运行的Web应用JS代码原子性违反检测方法,其特征是步骤5)具体包括:运行Web应用得到相应的运行轨迹,获取运行轨迹中涉及异步调用操作的元素信息,使用这些信息将原子性违反判定规则转换成判定条件;依据这些判定条件,编写动态原子性违反分析的脚本,集成到Jalangi的第三方脚本分析库中;Jalangi在回放阶段会自动调用并执行脚本进行分析,在控制台中输出原子性违反的判定结果,true表示没有原子性违反,false则含有原子性违反。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510626506.8/1.html,转载请声明来源钻瓜专利网。