绕过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再看源码。
阅读全文...

回到顶部