绕过flash安全沙箱限制(security sandbox)读取可视对象数据
2010年9月5日
18 条评论
问题描述
当我们加载外部域的图片或swf,并且想对其内容进去操作时报一个flash安全沙箱错误。
类似这样的:
SecurityError: Error #2122: 安全沙箱冲突:Loader.content:http://www.litefeel.com/crossSecurityBoxDemo.swf 不能访问 https://lite3-resouce.googlecode.com/svn/trunk/assets/image/duck.jpg。需要一个策略文件(crossdomain.xml),但在加载此媒体时未设置 checkPolicyFile 标志。
有这样几种安全沙箱错误:
- 需要一个策略文件,但在加载此媒体时未设置 checkPolicyFile 标志。
- 有一个策略文件,但未被授权访问或拒绝访问。
- 加载swf并要脚本互访时,未被授权访问,可以用Security.allowDomain解决。
解决方法
- 用Adobe建议的方法,添加策略文件,添加Security.allowDomain。
- 通过loadBytes绕过安全沙箱。
第一种方法是常规的方法,但是很多时候我们加载的图片不是自己的,对方服务器肯定不会给我们授权的。
那么这时第二种方法就派上用场了。
下面先看个demo再看源码。
阅读全文...