导致沙盒违规的Flash Player 10.1没有导致以前的版本

时间:2010-06-19 22:51:47

标签: flex flash security cross-domain

这对我而言是一个WTF时刻。使用一直工作的SWF,从http://akmi.kaltura.com加载数据。但是,现在,如果您从Flash Player 10切换到Flash Player 10.1,我会收到标准的安全沙箱违规行为:

  

*安全沙箱违规*   与http://akmi.kaltura.com//index.php/partnerservices2//executeplaylist?partner_id=36022&playlist_id=0_buugxoml&subp_id=3602200&format=8&ks=NDE4MzIyOTA4OTlhNGM0OTAyMjliMGU3Y2M1ODY5MzJjNmE5NjBmNHwzNjAyMjszNjAyMjsxMjc3MDczMjcyOzA7MTI3Njk4Njg3Mi4wMjk3OzA7dmlldzoq停止的连接 - 不允许http://localhost/kdp.swf   错误#2044:未处理的securityError:。 text =错误#2048:安全沙箱违规:http://localhost/kdp.swf无法从http://akmi.kaltura.com//index.php/partnerservices2//executeplaylist?partner_id=36022&playlist_id=0_buugxoml&subp_id=3602200&format=8&ks=NDE4MzIyOTA4OTlhNGM0OTAyMjliMGU3Y2M1ODY5MzJjNmE5NjBmNHwzNjAyMjszNjAyMjsxMjc3MDczMjcyOzA7MTI3Njk4Njg3Mi4wMjk3OzA7dmlldzoq加载数据。

改变了什么? crossdomain.xml仍然存在,如果我降级到FP 10(或更早版本),它会按预期工作。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

我在黑暗中拍摄了一下,但是......

首先,在您指定的URL中,index.php之前有两个'//'。这是否导致Flash Player 10.1找到跨域文件的问题?或者错误是否以某种方式破坏了URL?

如果内存为我服务,Flash Player真的特别关注crossdomain.xml是非常特别的。我注意到你的XML标签的顺序与我在Flex Show上使用的顺序不同,我没有指定名称空间。所以你可以尝试改变它们:

<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

我有点猜测,但这不是我遇到过的问题。

答案 1 :(得分:2)

嗯,一般来说,玩家更新时出现新的安全错误并不一定很奇怪。 Flash播放器通常会尝试保证向后兼容旧内容,但安全性更改被视为例外,因此每当Adobe对安全模型的某些内容比以前更严格时,就会假定开发人员必须更新其内容。

尽管如此,here are the security changes from FP10 to FP10.1,但它们中的任何一个听起来都不会影响到你。所以我最好的猜测是,在10和10.1之间有一些非常微妙的变化,无论出于何种原因而不是在Adobe的文章中,你需要解决 - 除非我链接的页面中的任何内容与你敲响了声音?

答案 2 :(得分:0)

我遇到了类似的问题,并且可以通过删除网址中的额外斜杠来修复它。当额外斜杠出现在域的根目录时,问题仅发生在10.1客户端中。

example.com//myurl
导致问题,

example.com/mysite//myurl 不会引起问题。

必须删除http前缀才能使其通过网站过滤器。

这可能与安全处理的变化有关。张贴以挽救他人的挫败感。

答案 3 :(得分:0)

man尝试使用actionscript加载你的跨域,并使用xmlsocket://代替ht tp://