资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,浅谈,Flash Player,的沙箱机制,陶冶,2010.12.6,沙箱,当,SWF,文件及其它资源 加载到,Flash Player,中时,,Flash Player,会根据这些文件和资源的来源单独地将其分配到安全沙箱中。,sandbox,网络域、安全域、应用程序域,网络域,web domain,安全域,security domain,应用程序域,application domain,Flash Player,的沙箱分类,本地安全沙箱,local safety sandbox,远程安全沙箱,web safety sandbox,本地沙箱,本地安全策略:,local safety strategy,本地文件系统域,本地网络域,本地受信任域,本地文件系统域,禁止遍历用户文件,禁止加载网络资源,禁止拉取远程数据,禁止跨脚本互访,禁止使用,socket,本地网络域,禁止遍历用户文件,跨域访问资源需要策略文件,禁止跨域拉取数据,禁止未经许可的跨脚本互访,Socket,要求使用策略文件,禁止访问资源的应用程序域,本地受信任域,禁止遍历用户文件,允许加载网络资源,跨域访问资源需要策略文件,允许拉取远程数据,允许访问已授权的脚本,使用,socket,需要策略文件,远程沙箱,网络安全策略:,web safety strategy,远程网络域,同本地网络域,沙箱特性总结,本地文件系统域禁止一切不安全的跨域访问。,本地受信任域解除了绝大部分的安全限制,但此操作只当用户允许后才有效。,远程网络域为防止引起跨域攻击,必须使用策略文件指定安全级别。,典型案例,Elex,平台跨域分析:,Elex,平台内置的,Loader,加载,Main.swf,,导致,Main.swf,的,url,指向,Elex,平台自身。,由于,Loader+,reparenting,+,checkPolicyFile,导致的严重跨域,无法访问,ApplicationDomain,获取资源文件的定义。,典型案例,逐步出现的症状:,无法引用,stage,Loader,无法加载资源,无法在平台上调试,加载资源类型错误,无法获取资源定义,资源内部代码跨域,无法缓存资源定义,解决方案,对于跨域的资源,需要加载安全策略文件。,对于严重跨域导致的无法获取资源定义,采用“,Cross Domain Loader”,思想绕开安全沙箱。,对于无法引用,stage,导致游戏缩放比不对的情况,直接设置,iframe,大小。,Cross Domain Loader,思想,跨域加载需要分多种情况:,Policy file Loader,Policy file with 2 Loader,Socket Loader,Proxy Loader,跨域加载也需要对不同文件类型做对应处理。,Policy file Loader,适用范围:,无需获取资源的类定义,能够顺利拿到资源定义,视听媒体作为数据访问,服务器上有,policy file,Policy file with 2 Loader,适用范围:,需获取资源的类定义,获得的定义被,Flash Player,用命名空间重命名,视听媒体作为数据访问,服务器上有,policy file,Socket Loader,适用范围:,需获取资源的类定义,不期望使用浏览器自带的缓存机制。,视听媒体作为数据访问,服务器上有,policy file,Proxy Loader,适用范围:,需获取资源的类定义,获得的定义被,Flash Player,用命名空间重命名,视听媒体作为数据访问,希望获取任何一台服务器上的资源,并且无视安全策略。(作者权限除外),成功案例,对,Elex,平台采用了“,Cross domain loader”,的第二种加载对策,成功进入游戏界面。,谢谢,
展开阅读全文