[发明专利]一种轻量级JavaScript沙箱的实现方法有效
申请号: | 201210386639.9 | 申请日: | 2012-10-12 |
公开(公告)号: | CN102930203A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 吴明晖;吕嘉;颜晖;金苍宏;薛莲 | 申请(专利权)人: | 浙江大学城市学院 |
主分类号: | G06F21/53 | 分类号: | G06F21/53 |
代理公司: | 杭州宇信知识产权代理事务所(普通合伙) 33231 | 代理人: | 张宇娟 |
地址: | 310015 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 轻量级 javascript 实现 方法 | ||
技术领域
本发明属于软件安全技术领域,涉及一种轻量级JavaScript沙箱的实现方法。
背景技术
JavaScript语言是一种广泛应用于互联网应用程序的脚本语言,JavaScript语言具有很好的表达能力和灵活性,使用JavaScript语言可以提高软件系统的灵活性和表达性,提高软件系统的可读性和可重用性。
而函数(function)是JavaScript语言的基本结构,JavaScript程序系由一组函数组成,只有确保目标JavaScript函数安全和可靠的执行,JavaScript程序才能够被安全和可靠的执行,不产生危险和恶意的程序行为。JavaScript语言支持运行时求解(runtime evaluation)语法特性,很多软件系统(例如社交网络)利用运行时求解支持用户提供JavaScript代码,由于缺乏有效的安全检查机制,直接运行用户提供的JavaScript代码可能引入危险和恶意的程序行为,影响整个软件系统的可靠性和安全性。
目前解决JavaScript程序安全性和可靠性问题的一种方法是建立沙箱,让可疑的JavaScript代码在沙箱中运行,通过沙箱防止恶意的JavaScript程序代码的执行。然而,现有的JavaScript程序实现一般较为复杂,一般需要扩展浏览器或者修改Web应用程序,甚至需要修改JavaScript的原有语法,程序员掌握和操作起来比较困难。
故,实有必要进行研究,提供一种简单有效,便于程序员的掌握和操作的轻量级JavaScript沙箱的实现方法。
发明内容
为解决上述问题,本发明的目的在于提供一种简单有效,便于程序员的掌握和操作的轻量级JavaScript沙箱的实现方法,确保JavaScript程序代码在沙箱内部安全执行,不产生危险的程序行为。
为实现上述目的,本发明的技术方案为:
一种轻量级JavaScript沙箱的实现方法,包括如下步骤:
S10:定义沙箱内部的访问控制;
S11:根据所定义的访问控制自动生成沙箱监控代码;
S12:根据所定义的访问控制自动生成禁止访问函数的监控代码;
S13:实时检测沙箱内部恶意代码,阻止危险的函数调用。
进一步地,所述步骤S10具体包括:
S101:定义一个函数作为沙箱范围,将可疑的JavaScript代码封装在这个特定的函数内部,针对这个沙箱定义禁止访问的函数集合;
S102:对一组访问控制定义一个访问控制对象数组,每一个数组元素对应一个访问控制。
进一步地,步骤S102中,每一个访问控制包括有沙箱名称和禁止访问函数数组这两个部分,沙箱名称为沙箱入口函数名称,禁止访问函数数组的每一个元素是对应的沙箱内部禁止访问的一个函数名称。
进一步地,所述步骤S11具体包括:
S110:逐个访问访问控制对象数组,取出其中的访问控制对象;
S111:根据访问控制对象的沙箱名称,生成入口函数的监控代码的字符串;
S112:根据步骤S111中生成的字符串,使用jQuery AOP和JavaScript函数生成沙箱的监控代码。
进一步地,所述步骤S12具体包括:
S120:逐个访问控制对象数组元素,取出其中的访问控制对象;
S121:根据访问控制对象的禁止访问函数数组生成禁止访问函数的监控代码的字符串;
S121:根据步骤S121生成的字符串,使用jQuery AOP和JavaScript函数生成禁止访问函数的监控代码。
进一步地,所述步骤S13具体包括:。
S130:当沙箱入口函数被执行时,系统进入口函数对应的沙箱;
S131:设置进入沙箱为系统的当前沙箱,系统的沙箱数量加1;
S132:执行沙箱内部的程序代码;
S133:如果沙箱内部代码执行完成,则返回上一个沙箱,系统的沙箱数量减1,系统返回初始状态;
S134:如果某个禁止访问函数被执行,则判断该禁止访问函数是否属于当前的访问控制,如果属于当前的访问控制,则执行步骤S135;否则,返回步骤S132;
S135:发生危险程序行为时,阻止执行
相较于现有技术,本发明轻量级JavaScript沙箱的实现方法简单有效,便于程序员的掌握和操作的轻量级JavaScript沙箱的实现方法,确保JavaScript程序代码在沙箱内部安全执行,不产生危险的程序行为。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学城市学院,未经浙江大学城市学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210386639.9/2.html,转载请声明来源钻瓜专利网。