- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主FLASH安全沙箱
掌握FLASH安全沙箱
安全模型从as2开始一直都是学习上的拦路虎,as3安全模型比起as2更加复杂。凡是包括加载与通信的行为,如swf文件之间的通信,swf与网页之间的通信,XMLSocket或webService等都受到安全机制的限制。在帮助文件中随时会提醒你注意安全模型,并且称作焦点问题,最大的问题是当发布运行程序时时不时跳出一个安全对话框,让初学者不知所措。安全性问题确实很烦人,adobe也不愿意搞的复杂,但是没办法,因为——人心太坏了,总是有些人要干坏事,不得不建立法律来限制这些人。经过整理,我尽量按照能够接受的方式按顺序讲解,能让看完教程的人不再为安全问题迷惑和烦恼的是写这教程的目标。
本地和远程:
1.本地和远程文件:
本机上的swf文件和在本地网页中嵌入的本地swf是本地文件,服务器上的swf或者服务器页面嵌入的swf文件是远程文件。
2.本地和远程访问:
使用file协议或路径名访问是本地访问,通过http协议或其它协议访问是网络访问。
关于中文路径:最好保证路径为英文名称。flash把路径名统一使用网络编码,由于操作系统编码环境的区别可能导致中文路径有出现问题。即使在同一个文件夹下,也可能因为文件夹名称为中文载不进来。因为as3可能会把相对路径转化为绝对路径。
安全沙箱:
as3中共有4种沙箱类型:
Security.REMOTE:
远程文件被放入这个沙箱中。Security.REMOTE不能访问访问本地数据。远程之间遵守跨域安全策略。页面或容器有能力与flash控件通信。
Security.LOCAL_WITH_FILE:
可以访问本地数据但不能以任何形式访问网络,包括:不能用url链接,不能载入远程数据。flash控件不能跟页面或容器通信。本地数据不能以任何方式发送到网络。
Security.LOCAL_WITH_NETWORK:
允许本地文件访问网络。访问网络要遵守跨域机制。不能以任何方式访问本地内容。
Security.LOCAL_TRUSTED:
既可以访问本地内容又可以访问网络。前提是被加入信任位置。调式模式和生成的exe也是这个级别。因为调试和运行exe都是用户主动的行为,被看作用户认可的。
除此之外:
远程沙箱中的文件始终不能访问本地。
位于相同沙箱中的资源才能互相访问。
绕过沙箱:
若想绕过flash安全机制进行数据交换。只有寻求第三方――服务器脚本。通过服务器脚本互相交换数据。但这样也要遵守脚本之间的安全机制,而且不能进行文件交流。
SecurityDomain类
SecurityDomain类基于Object,使用import flash.system.SecurityDomain声明。SecurityDomain类是单例模式。只能使用静态属性表示当前安全沙箱。当swf跨域通信时,可以把跨域沙箱中的swf载入到本地安全沙箱中。
属性:
SecurityDomain.currentDomain:SecurityDomain:
当前安全域
跨域访问机制:
在服务器上,同一个域中的文件、数据或者swf可以任意访问。若要跨域访问需被授权。注意不同域名即使映射到相同IP地址也会被看成两个域。IP地址名和通过解析的地址也被看作两个域。有两种授权方式:策略文件和作者授权。
策略文件:
策略文件声明某个域中的文件可以被指定域访问。策略适用于所有形式的访问。是个xml文件,格式如:
cross-domain-policy
allow-access-from domain=www.someS secure=false/
allow-access-from domain=*/
/cross-domain-policy
策略文件中可以使用通配符。使用*通配符表示能被所有网站访问。secure用于https协议与http互相访问。false表示允许互相访问。
默认策略文件:
默认策略文件放在网站根目录下面名字必须为crossdomain.xml。
加载策略文件:
若觉得默认策略文件给服务器维护造成影响。可放到子域中,用System.security.loadPolicyFile(url)来加载。
策略文件类型:
策略文件分为页面策略文件和套接字策略文件。套接字策略文件需要指定端口,如:
cross-domain-policy
allow-access-from domain=* to-ports=507 /
allow-access-from domain=*. to-ports=507,516 /
allow-access-from domain=*. to-ports=516-523 /
allow-access-from domain= to-ports=507,516-523 /
文档评论(0)