论坛首页 编程语言技术论坛

最新火爆游戏巨献(续集)——谈AIR的安全机制

浏览 2016 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-11-30   最后修改:2009-12-25

To be or not to be, that is a question.
To go or not to go, 这是一个相同的问题。
是驻守幸福生活,还是艰难前进寻找更幸福的生活,这是一个永恒的问题 ……

世界上唯一不变的就是变化,我们继续关注部落的改革过程。首先来简短回顾一下上一次部落做出的改革,以及指导改革的中心思想:

改革1:
由自给自足,与世隔绝改变成为与外界互通有无,资源共享。

改革1的指导思想:
1.  要与外界交流。外界的资源可以拿进来,里面的资源可以走出去

2.  要与外界谨慎的交流。按照来源明确的把各种人和资源归到四个区域中去,最不受信任的是外界的人和资源,最受信任的是部落内部值得信赖的人和资源。这四个区域之间人和资源的往来要受到严格的安全检查。


历史证明,改革是成功的,部落人民过上了更幸福的生活。他们从外界商场里买到的电视和电脑中接触到了更多姿多彩的文明,明白了在无尽的宇宙中还存在着其他的生命,对詹姆斯卡梅隆执导的、通过Adobe Flash Player和AIR技术推广的3D大片AVATAR充满了期待…… 总之,他们更快乐了。

但是与此同时,富有远见的部落领导者却在思考,是不是要把改革推进下去,让改革更彻底呢?
那么哪里有改革不彻底的地方存在呢?读过上期的同学可能对四个区域中的“部落土著组成的学习外界先进科学文化知识小组”这个区域印象深刻,因为相比其他区域而言,这个区域的权力太大了,对一切资源都是予取予求。但是等等,要深入改革的地方恰恰在这里!我们现在谈的是真正的权力,可以在部落内部买卖土地搞房地产,甚至把整个部落变卖的权力。学习小组有这样的权力吗?no,它只是学习小组而已,它的主要任务是搞调查研究。领导者坚信,进一步的改革会让人民生活更加幸福,有更加方便更加丰富更加绚丽的体验,于是第二步的改革隆重登场:

改革2:
增加一个域,由部落元老组成,我们可以叫它元老域,拥有至高无上的权力。

改革2的指导思想:
1.  为新增的元老域赋予最大的权力

2.  其他域保持不变

3.  元老域可以向其他域开放窗口,提供自己想提供的一些服务给其他域

4.  元老域里一定不能有潜伏人员,甚至不能有具有成为潜伏人员潜力的人员



我们说好的设计就是清楚的设计,反之亦然,通过这个我们就几乎可以肯定领导者的设计是好的。为了去掉“几乎”,来看真相还原。

 
真相还原

总体说明:
1.      为了丰富用户体验,AIR把网络上的RIA技术应用到桌面,成为一个native的application

2.      AIR有使用本机的一切资源的能力,像其他native application一样,如windows下的exe文件,Mac下的app文件


指导思想:
1.      在Flash Player安全机制的基础上,新增加一个sandbox,叫做application sandbox.  在AIR的安装目录下的所有文件都属于这个域。这个域中的可执行代码由于可以执行新增的、强大的AIR API,所以号称无所不能,也就是我们上面说过的有无上的权力。

2.      Flash Player安全机制中的其他四个sandbox保持原状,依旧被AIR支持。所以Flash Player的安全机制是AIR安全机制的基础。这四个sandbox在AIR中通常也被统称为 Non-Application sandbox

3.      Non-Application sandbox无法使用AIR的API,如FileSystem, NativeWindow等

4.      Application sandbox可以向Non-Application sandbox开放接口,允许后者调用前者指定的AIR功能,这个技术叫做sandbox bridge.

5.      Application sandbox中不允许有可以动态生成的代码,例如javascript中的 “eval()”, “innerHTML”, “document.write()”等




AIR安全机制的特点:
AIR联系着网络和桌面两端,因此既要考虑桌面程序的安全性,也要考虑web的安全性。
AIR的安全机制的规则是清楚的和有效的,目前为止没有针对安全规则方面的质疑。最大的质疑是指AIR作为一个native application,容易被黑客利用来欺骗用户执行,造成大的损失。但这是所有native application共同的问题。针对普通用户来说,在安装AIR程序时一定要保证信任程序发行方。针对AIR developer来说,拥有合法的发行程序资格是很重要的,同时要注意避免把不可靠的内容放到application sandbox中,充分利用AIR提供的安全机制,做到没有最安全,只有更安全~

这里依然是一个主干描述,详细的规则请见官方文档:http://help.adobe.com/en_US/AIR/1.5/air_security/WS5b3ccc516d4fbf351e63e3d11c0f598475-7ff9.html

 

--球状闪电

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics