【发布时间】:2013-05-31 12:03:47
【问题描述】:
我想从 MJPG 获取 URLStream,但收到错误 #2048:发布版本中的安全沙箱违规错误。
我正在尝试做的事情:
Security.allowDomain("*");
Security.allowInsecureDomain("*");
var stream:URLStream = new URLStream();
//receiving this error event in onStreamSecurityError handler:
//Error #2048: Security sandbox violation: {swf} cannot load data from {url}
stream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onStreamSecurityError);
//load method have no loader context option
stream.load(new URLRequest("http://anydomain.com/mjpg/video.mjpg"));
设置 crossdomain.xml 不是解决方案,因为应用程序应该能够从任何远程服务器加载流。
我记得使用 flash.display.Loader 类时,我设置了 LoaderContext 和应用程序域。之后,flex 应用程序可以从任何域加载资源。但我不知道如何处理 URLStream。
您对错误 #2048 有任何解决方案或解决方法吗?
【问题讨论】:
-
我认为这是跨域文件的重点——你不能只从任何服务器加载。
-
谢谢,但为什么我可以使用 Loader 或 $.ajax 从任何服务器加载?是否可以禁用安全性?如果服务器管理员不想与所有人共享资源,他可以设置身份验证。
-
您的要求可以改写为“我如何使用 Flash Player 发起跨站脚本攻击”:en.wikipedia.org/wiki/XXS 答案是 Flash 尽其所能防止这种情况发生.如果您想在基于浏览器的 Flash 应用程序中从任何服务器加载数据,则必须创建您有权访问的各种代理。
-
@Reboog711 重新流式传输视频?我需要一个单独的流媒体服务器,找到一个托管它的地方。而我真正需要的是什么?在 Internet Explorer 中支持 mjpg。它可以通过 VLC 插件来完成,但它有一些我无法使用的问题。我认为闪存开发人员正在锯掉它所在的分支。无需创建验证输入并默认启用的特殊安全实用程序...但是
-
@2xMax 我不得不承认我不太了解您对我的回复。但是,是的,服务器端代理是访问客户端无法访问的内容的正确解决方案。或者,您可以让要访问的站点添加一个 crossdomain.xml 文件。我知道 Silverlight 有类似的问题,并使用类似于 crossdomain.xml 的文件来解决它。我认为大多数浏览器都有 JavaScript 实现来防止不必要的访问。
标签: actionscript-3 flash apache-flex flex4