浏览 2358 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-18
最后修改:2009-12-25
话说在世界的尽头,太阳落下彩虹升起的地方,有一个神秘的部落。在这个部落里,房子是用金子盖的,路是用鲜花铺的,女孩子都很漂亮,男孩子都很帅。山上的丛林里,山下的小河中,都蕴含着丰饶的物产。自古以来,部落里善良勤劳的人们与世隔绝,自给自足,过着幸福的生活。 1969年发生了一件大事,ARPAnet正式启用并在稍后被称做INTERNET,从此大地风云变色,风起云涌,沧海桑田,换了人间。40年过去,弹指一挥间,当年的神秘部落也在潮涨潮落间悄悄有了改变…… 外界的奸商看着这片丰饶的土地流下了口水,普通的民众也对也对它神秘的一面充满了新奇。我们不禁要关注这个可爱部落的前途命运,在迎接世界的过程中,它将得到还是失去…… OK, 以上是年度游戏大作《Flash Player安全机制》的片花介绍,现在我们来详细解释游戏规则。 总体说明: 1. 与部落打交道的外界的人和资源集中在外界的“商场”里,也就是部落对外交流的接口是一个个的商场,每个商场里面有外界的资源和外界的人。 2. 游戏任务是保护部落里的资源不被外界滥用,这种保护是通过制定规则来做到的 游戏构成: 1. 机构:(资源在机构之间流通) a. 外界的商场:包括商场A,商场B,...,商场N b. 部落土著的工厂:收购部落本身的物产进行生产 c. 外界人员组成的神秘部落探险队:对部落小心刺探,与外界联系紧密 d. 部落土著组成的学习外界先进科学文化知识小组:由血统纯正,忠诚无比的部落先进分子组成,代表部落先进生产力,先进文化,先进…… 2. 资源:(包括人和物产) a. 人:二十一世纪什么最贵?人才!人是第一位的,是具有主观能动性的资源 b. 金矿石 c. 金子 d. 千年雪莲 3. 老板:(管理资源在机构间的流通) a. 外界商场老板:每个商场一位老板 b. 部落的头领:部落最高领导人,仅有一位,拥有至高无上的权利(在部落中) c. 人的思想:这个不太好描述,俗话说解放思想实事求是,可见思想可以控制人的行为。因此思想也算是老板,它可以控制人做什么或不做什么 4. 通行证:(资源流经各个机构时,老板是否允许其通行的凭证) a. 商场通行证:可以用来说服商场老板开放资源 b. 部落头领通行证:可以用来说服头领把资源分配到土著学习小组去 c. 解放思想通行证:此证可以解放人的思想,堪称魔力无穷,相当犀利 游戏规则:(重点来了啊) 1. 外界的商场不允许直接访问土著的工厂、探险队、学习小组的一切资源。因为外界是不受部落信任的,它的一举一动都被严密监视,它不能主动对部落做任何刺探 2. 外界的商场之间可以互相沟通往来资源,前提是商场老板间有通行证随同 3. 土著的工厂收集本部落的一切资源,也可以征用本部落的一切人员 4. 土著的工厂不能与外界的探险队有任何往来。这个很重要,因为探险队可能是外界派来的侦查兵,或潜伏人员 5. 土著的工厂可以与学习小组交换一般的资源,但是只有提供解放思想通行证,才能与学习小组的人员交流(这个交流可以是简单的语言交流,也可能是通婚,程度不限,因此要慎重) 6. 土著的工厂不允许使用外界商场的一切资源。这也合情理,土著嘛,都相信自然是最美的,非自然是危险的 7. 外界探险队可以收集部落内的金矿石,进行研究 8. 外界探险队不可以直接收集部落内的金子,这不是研究了,而是掠夺 9. 外界探险队不可以收集千年雪莲,因为这个对部落来说也很珍贵 10. 外界探险队不可以使用土著工厂的任何资源。与规则4保持一致 11. 外界探险队可以与学习小组的人员交流,只要能提供解放思想通行证(这是非常危险的行为,万一学习小组内部有潜伏人员……) 12. 外界探险队使用外界商场的资源,只要有商场通行证。外界的人还是用外界的东西比较舒服 13. 学习小组可以使用所有的资源。这个概括是有力的,因为学习小组得到了头领或分片领导的信任,它可以内外通吃,想吃就吃,想拿东西就拿东西,想用人就用人,不需要任何通行证 好了,针对上面的规则,有办法让部落的资源外泄吗?需要注意的是,通行证可不是好搞的啊,特别是部落内的通行证,合理的才能发,因为部落里的人可不懂走后门这一说。 真相还原 总体说明: 1. 部落是指电脑主机,里面有各种各样隐秘的资源。商场是指各个website,上面有外界的静态资源和flash SWF文件资源 。 2. Flash安全机制的目的主机的资源不被外界滥用,这种保护是通过制定规则来做到的。 安全机制构成: 1. 安全沙箱(sandboxes): a. 远程沙箱(Remote sandbox): 不同的website属于不同的远程沙箱,例如sitea.com和siteb.com都属于远程沙箱,但是属于不同的远程沙箱 b. 本地文件系统沙箱(local-with-filesystem sandbox):对本地文件系统比对远程有更多的访问权 c. 本地网络沙箱(local-with-networking sandbox):对远程范围比对本地有更多的访问权 d. 本地信任沙箱(local-trusted sandbox):本地受信任沙箱,对本地资源和远程资源都有绝对的访问权 2. 资源:(包括swf文件和静态资源) a. Swf文件:是唯一的主动资源,因为它可以访问其他资源,它自身也可以作为资源被load,或者被cross-script访问 b. Load 资源文件:比如load一个图片,或者音频、视频等 c. 访问资源文件的内容:比如查看图片的像素,音频中的ID3属性等。这属于在资源中提取有价值的属性,恰似在金矿石中提取金子,因此它受限多一些 d. Load数据:比如load一个XML文件或者二进制文件。基本上b、d很难用语言区分,区分它们的最好办法是通过API的调用,一些API划分为b,另一些划分为d,具体参看文档~ 3. stakeholder: a. 网站管理员 b. 本地主机管理员:事实上还有本地主机普通用户也是作为一个stakeholder,但与主机管理员职责相似,只是主机管理员决定整个系统的配置,而用户负责自己账户的配置 c. Swf文件创建者:创建swf文件者可以决定此文件是否允许被交叉脚本访问,即cross-script,即开放接口和数据供另一个swf文件调用 4. Policy file: a. 发布者许可(政策文件):是一个简单的xml文档,给予其信任来源的swf文件访问资源的权利 b. 管理员控制文件:用于管理员启用或限制用户对各种功能的访问,其形式有使用mms.cfg文件、全局Flash player信任目录、设置UI和设置管理器等 c. 创建者许可:通过在创建swf文件时调用“Security.allowDomain()”方法,来允许其他swf文件对其进行交叉脚本访问。见3(c) 规则: 1. Remote sandbox 中的swf不允许直接访问本地主机资源 2. Remote 范围内的各个sandbox域可以互相访问,但除了2(b)外一般需提供4(a),交叉脚本控制时需提供4(c) 3. Local-with-filesystem sandbox可以访问本地文件系统的一切资源,也可以交叉脚本访问本地文件系统的swf文件 4. Local-with-filesystem sandbox不允许访问local-with-networking的一切资源 5. Local-with-filesystem sandbox只有提供4(c)才可以交叉脚本控制local-trusted sandbox中的swf文件 6. Local-with-filesystem sandbox不允许访问remote sandboxes 中的一切资源 7. Local-with-networking sandbox可以进行2(b) 8. Local-with-networking sandbox不可以进行2(c) 9. Local-with-networking sandbox不可以进行2(d) 10. Local-with-networking sandbox 不允许访问local-with-filesystem的一切资源 11. Local-with-networking sandbox可以对local-trusted进行2(b),但只有提供4(c)才可以交叉脚本控制local-trusted sandbox中的swf文件。 12. Local-with-networking sandbox可以对remote sandboxes进行2(b),但只有提供4(c)才可以交叉脚本控制local-trusted sandbox中的swf文件,而且只有提供4(a)才允许进行2(c)和2(d) 13. Local-trusted可以对任何sandbox域的资源进行访问和交叉脚本控制 场景虚拟: 1. 本地主机有一个私密文件,上面有用户银行账号,在C:\Program Files\Adobe\bankaccount.txt中 2. Hacker给主机用户发送一个Email,里面有个动画hack.swf作为附件 3. 主机用户运行hack.swf,hack.swf在播放一些防止人多拥挤,电梯故障处理等视频的同时,偷偷使用URLLoader(C:\Program Files\Adobe\bankaccount.txt)装载文件,并且通过net.sendToURL()把它传到Hacker的网站 4. Hacker发财了 这里注意,步骤3是不可能的,因为hack.swf在本地被打开,它可能位于local-with-filesystem sandbox或位于local-with-networking sandbox(这由编译时”-use-network”选项决定)。假设: 1. 位于local-with-filesystem sandbox:net.sendToURL()是与remote sandbox打交道的API,因此会被阻止 2. 位于local-with-networking sandbox:URLLoader()本地文件系统的内容会被阻止 所以,由于flash player安全机制的保护,本地用户是安全的,这就是为什么Hacker里没有太富的人的原因。 宗旨: 为了帮助刚刚接触安全机制的同学理清思路,明白概念,这里只大概描述了一些最主要的枝干,具体的细节请参看官方文档:http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d23.html --球状闪电 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |