【问题标题】:Flex URLStream Security sandbox violationFlex URLStream 安全沙箱违规
【发布时间】: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


【解决方案1】:

这是不可能的。您不能远程授予对另一个域的访问权限,因为它不是您的授予权限。 allowDomain() 函数并没有这样做,而是相反:

允许已识别域中的 SWF 文件访问包含 allowDomain() 调用的 SWF 文件中的对象和变量。

如果您的 SWF 在域 a.com 上,并且您在其中添加行 Security.allowDomain("b.com"),则将访问域 b.com 上的 SWF 的权限授予您的 SWF。它不会授予您访问域 b.com 的权限。

您可以在the documentation of allowDomain()找到更多详细信息

AJAX 也不允许您这样做,或者更好地说,浏览器不允许您这样做。他们都遵循相同的规则。

为了克服这个问题,您必须通过与您的 SWF 位于同一域的服务器端脚本代理请求。它可以是带有 curl 的 PHP,或者任何你觉得更容易的东西。 This video 解释了如何以及为什么。

【讨论】:

  • >AJAX 也不会让你这样做,或者更好地说,浏览器不会让你这样做。他们都按照相同的规则玩。谁阻止我打电话给 $.ajax('extdomain.com') ?
  • 大多数情况下浏览器不允许这样做。没有人阻止你这样做,但浏览器只是拒绝执行请求。试试看。
猜你喜欢
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多