背景技术
widget是一小块可以在任意一个基于HTML或JavaScript的Web页面上执行的代码,是一个互联网的小应用,它的表现形式可能是视频、地图、新闻、小游戏等等。widget起源于苹果公司一位工程师的灵感,最初被实现在MAC OS上。它由widget引擎和widget应用构成,能够极大的完善桌面应用和网络操作。Widget引擎是widget应用运行的平台,同时也通过ajax技术提供了网络访问能力。在安装了widget UA(User Agent,用户代理)后,就可以在此widget引擎上运行具有各种不同功能的widget应用了。随着widget的发展,它具备了跨平台的能力,目前在windows、MAC OS、linux及各种手机平台上都能看到widget的影子。
Widget应用作为在互联网上兴起的一种小应用,在2007年开始widget概念在互联网上盛行,国内新浪、搜狐、盛大、中移动、联通都开始投入到widget的研发和标准制定中。Widget的表现形式也由最初的桌面widget、web widget,发展到终端设备上,如:2008年开始出现的手机widget和电视widget等。其共同想法是把桌面widget和web widget的一些特点引入到终端设备上。通过提供JavaScript API(Application Programming Interface,应用程序编程接口,以下简称JS API)接口的方式,使得widget应用能够访问移动终端上的诸如:短信、通讯录、日程表、GPS等终端上的本地应用。
为了在widget的发展中抢占先机,各大网站和厂商都发布了自己的widget标准。W3C(World Wide Web Consortium,万维网联盟)从2006年开始制定一个统一的widget标准,陆续发布了一系列的规范,但是这些规范标准都还处于草案阶段,且只是面向桌面widget系统。随着终端设备上widget的出现,一些厂商也开始制定移动终端上的widget规范。如:OMTP(Open Mobile Terminal Platform,开放移动终端平台)制定的BONDI规范,及中国移动参与制定的JIL(Joint Innovation Lab,联合创新实验室)规范。这些规范都提供了对终端设备上widget本地应用的支持。
目前业界widget的标准中,在widget安全方面只规定了数字签名相关的标准,而这些规定主要是针对widget应用的版权及方便计费统计。而在widget系统的JS API的安全方面并没有做出相应详细规定,这个部分还是空白。但是在移动终端上widget系统通过提供JS API使得widget应用能够对很多终端本地的应用进行访问和操作。这意味着widget应用可以进行短彩信收发、接打电话、读取和写入通讯录、访问网络、对终端文件系统进行读写和删除操作等。如果某个包含了恶意JS脚本的widget应用利用这些API进行恶意操作,则给用户终端的接口安全、用户个人数据安全、网络安全造成很大隐患。
发明内容
本发明要解决的技术问题是提供一种widget应用安全保护方法和系统,尽可能保证用户终端的接口安全、用户个人数据安全和网络安全。
为解决上述技术问题,本发明提供了一种widget应用安全保护方法,包括:
对JavaScript应用程序编程接口(JS API)进行安全等级配置,并将配置结果保存在安全配置文件中;
在widget引擎启动时读取安全配置文件,在widget应用通过JS API调用终端本地功能时,根据所述安全配置文件中的配置对JS API进行控制。
进一步地,所述对JS API进行控制是指:决定所述JS API是否可调用终端本地功能。
进一步地,所述对JS API进行安全等级配置的步骤包括:
为JS API配置以下安全等级中的任一种:不信任、部分信任、完全信任;其中,配置为不信任时,所述JS API无法调用终端本地功能;配置为完全信任时,所述JS API可以调用终端上所有本地功能;配置为部分信任时,所述JS API可以调用终端上部分本地功能。
进一步地,将JS API配置为部分信任时,还设置终端上可被调用的本地功能和/或不可被调用的本地功能。
为解决上述技术问题,本发明还提供了一种widget应用安全保护系统,包括JavaScript应用程序编程接口(JS API)安全分级设置子模块,以及JS API安全控制模块,其中:
所述JS API安全分级设置子模块,用于对JS API进行安全等级配置,并将配置结果保存在安全配置文件中;
所述JS API安全控制模块,用于在widget引擎启动时读取安全配置文件,在widget应用通过JS API调用终端本地功能时,根据该安全配置文件中的配置对JS API进行控制。
进一步地,所述JS API安全控制模块对JS API进行控制是指,所述JSAPI安全控制模块决定所述JS API是否可调用终端本地功能。
进一步地,所述JS API安全分级设置子模块,用于为JS API配置以下安全等级中的任一种:不信任、部分信任、完全信任;其中,配置为不信任时,所述JS API无法调用终端本地功能;配置为完全信任时,所述JS API可以调用终端上所有本地功能;配置为部分信任时,所述JS API可以调用终端上部分本地功能。
进一步地,所述JS API安全分级设置子模块将JS API配置为部分信任时,还设置终端上可被调用的本地功能和/或不可被调用的本地功能。
本发明提出的widget系统从W3C标准的空白点着手,从为用户提供安全的widget系统出发,提出了适用于移动终端设备上的对JS API进行安全分级的widget系统。在现有的widget系统中,通常都不提供JS API安全功能。面对可能存在的恶意widget应用,用户的个人信息和数据安全得不到任何保障。而本发明提供的安全分级方法,通过对JS API安全分级的方法,对特定JS API进行功能限制,防止widget应用利用这些JS API进行恶意操作,可以尽可能的保证用户终端的接口安全、用户个人数据安全、网络安全。
具体实施方式
下面结合附图对本发明实施例进行详细说明。
实施例1
遵循W3C、JIL和BONDI等标准定义的widget系统框架,在标准定义的框架下在widget引擎中增加1个对JavaScript API进行安全分级的子系统。如图1所示,在此子系统中包含JS API安全分级设置模块和JS API安全控制模块,其中:
●JS API安全分级设置子模块,用于对JS API进行安全等级配置,并将配置结果保存在安全配置文件中;
配置的安全等级可以是:不信任、部分信任、完全信任。每个安全等级的具体含义如下:
A不信任:此时,每一个与终端本地功能相关的JS API都不可用,即,widget应用中通过JS API来调用终端本地功能都是无效的;
B部分信任:此时,对与终端本地功能相关的JS API分别设置是否可用,即,widget应用通过JS API来调用终端本地功能时,仅有部分功能可使用。在设置为部分信任时,还设置终端上可被调用的本地功能和/或不可被调用的本地功能,即可以对每个可能调用终端本地功能的JS API分别设置,或者根据终端本地功能类别,对调用某类功能的多个JS API进行批量设置,例如:可以设置电话簿的相关JS API是否可用、短消息模块的相关JS API是否可用等,当设置电话簿的相关JS API为信任时,表明读取电话簿的JS API、写入电话簿的JS API、删除电话簿的JS API均可用;当设置短消息模块的相关JS API不信任时,读取短消息的JS API、发送短消息的JS API、删除短消息的JS API均不可用。
C完全信任:此时,每一个与终端本地功能相关的JS API都可用。即,widget应用通过JS API来调用终端本地功能时,所有功能均允许使用。
本实施例以分为三级为例进行说明,在其他实施例中也可以分为多级。另外,等级的名称也可以不限于上述实施例,例如采用高、中、低来进行区别。
上述设置操作可由用户来完成,或者由widget引擎采用默认的设置。
●JS API安全控制模块,用于在widget引擎启动时读取安全配置文件,在widget应用通过JS API调用终端本地功能时,根据该安全配置文件对JSAPI进行控制,即决定该JS API是否可调用终端本地功能。简单的说,对于被用户限制的JS API,其功能不可用,而对于用户信任的JS API其功能正常。
由于一个JS API用于调用终端的一个本地功能,因此对所有JS API进行安全等级配置后,任何widget应用不能再随意通过JS API调用终端本地的功能,在一定程度上保护了用户终端的接口安全和用户个人数据安全。
实施例2
本实施例介绍widget应用安全保护方法,包括:
步骤一,对JS API进行安全等级配置,并将配置结果保存在安全配置文件中;
步骤二,在widget引擎启动时读取安全配置文件,在widget应用通过JS API调用终端本地功能时,根据该安全配置文件中的配置对JS API进行控制,即决定该JS API是否可调用终端本地功能。
下面分步骤进行介绍。
如图2所示,上述步骤一具体包括以下步骤:
步骤1:用户启动安全策略设置;
步骤2:用户进行安全等级的设置,可将JS API设置为完全信任或部分信任或不信任;
在本步骤中,如果用户选择完全信任的安全级别,则所有调用终端本地功能的JS API都能被调用;如果用户选择不信任安全级别,则所有与本地应用相关的JS API都不可用;如果用户选择部分信任安全级别,则用户可进一步设置哪些功能可被JS API调用。例如,根据终端的本地功能把调用相应功能的各JS API分为若干大类,例如短信类JS API、多媒体类JS API、电话功能类JS API等。优选地,每个大的分类下还可包含若干小的子类。每个大类和子类都可以被用户单独设置。例如:可以设置短信类JS API为信任,而其他JS API为不信任,同时用户还可以进一步的详细设置,例如:用户可设置短信类JS API中的读短信JS API为信任,删除短信JS API和发送短信JS API均为不信任。
步骤3:将配置的安全策略保存在安全配置文件中;
例如可以以xml文件等形式保存。
步骤4:将安全配置文件保存在本地。
用户设置后的JS API安全配置保存在本地的安全配置文件里。
如果用户未启动安全策略设置,则可提供一个默认的JS API安全分级。例如可以是:仅开放与HTTP网络服务相关的JS API,而其他所有与终端本地功能相关的JS API全部为不信任。当widget应用中调用了不信任的JS API时将提示用户:在默认安全分级设置下,此功能不可用。
以用户设置为部分信任为例,安全配置文件内容如下:
<JS security>
<Trust></Trust> //完全信任
<UnTrust></UnTrust> //不信任
<PartlyTrust> //部分信任
<Device> //设备对象相关JS API
<fileSystem> //设备的子对象文件系统
<readable></readable> //读操作权限
<writable></writable> //写操作权限
</fileSystem>
......
......
</Device>
<Messaging> //信息对象相关JS API
<mms> //信息的子对象彩传
<readable></readable> //读操作权限
<writable></writable> //写操作权限
<sendable></sendable> //发送权限
</mms>
......
......
</Messaging>
<Multimedia> //多媒体相关JS API
......
......
</Multimedia>
<PIM> //个人信息对象相关JS API
......
......
</PIM>
<Telephony>//电话对象相关JS API
......
......
</Telephony>
</PartlyTrust>
<JS security>
上述的JS API安全设置,可根据用户需要随时进行修改。
如图3所示,上述步骤二具体包括如下步骤:
步骤1:widget引擎启动,读取JS API安全配置文件;
步骤2:解析JS API安全配置文件;
解析后的JS API安全配置文件留待使用。
在其他实施例中,也可在运行widget应用前解析JS API的安全配置文件。总之只要在进行JS API安全控制前获得详细的各个JS API的安全权限没置即可。
步骤3:运行某widget应用的过程中,所述widget应用调用JS API;
步骤4:根据所述JS API安全配置文件进行JS API安全控制,包括:根据安全配置文件判断该JS API是否可执行,如果是,则继续完成JS API功能,运行该widget应用,如果不是,则不执行JS API,并提示用户,并继续运行该widget应用。
对于每一个可调用终端本地功能的JS API而言,当widget应用调用它时,会先查询其安全设置,如果满足安全设置条件,则此JS API可正常调用。否则,弹出一个用户提示框,提示用户根据安全设置此JS API当前不可用。
通过以上步骤可以达到widget系统JS API分级安全保护的目的,可以有效保护用户终端的接口安全、个人数据安全、网络安全。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。