Flash安全性错误使用crossdomain.xml访问URL

时间:2009-11-02 14:00:59

标签: flex flash actionscript-3 security

我最近将一个Flash应用程序部署到服务器,现在在发出HTTPService请求时遇到错误。我在wwwroot文件夹中放了我认为最宽容的crossdomain.xml,但仍然会出错。

有趣的是,只有当请求来自直接用户交互(即按钮点击)时,才会出现错误。该应用程序发出其他方式(即creationComplete)启动的其他请求,它们似乎按预期工作。

有人发现crossdomain.xml有什么问题,还是有其他建议?

错误消息

[RPC Fault faultString =“访问url的安全性错误”faultCode =“Channel.Security.Error”faultDetail =“Destination:DefaultHTTP”]  在mx.rpc :: AbstractInvoker / http://www.adobe.com/2006/flex/mx/internal::faultHandler()  在mx.rpc :: Responder / fault()  在mx.rpc :: AsyncRequest / fault()  在DirectHTTPMessageResponder / securityErrorHandler()  在flash.events::EventDispatcher/dispatchEventFunction()  at flash.events::EventDispatcher/dispatchEvent()  在flash.net::URLLoader/redirectEvent()

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
 <site-control permitted-cross-domain-policies="all" />
 <allow-access-from domain="*" secure="false" />
 <allow-http-request-headers-from domain="*" headers="*" secure="false" />
</cross-domain-policy>

2 个答案:

答案 0 :(得分:1)

您需要小心这些跨域策略文件,因为它们可能会打开一些严重的安全漏洞。您不应该在使用cookie或基本身份验证的站点上使用*策略,并且永远不要在内部网服务器上放置*策略。

避免这些安全问题并使其工作的最简单方法是确保从中加载SWF的URL以及发出请求的URL是相同的协议,主机名和端口(如果已指定)。如果它们不同,那么您应该考虑使用代理,以便它们是相同的。 BlazeDS或Apache禁止轻松设置为代理。

答案 1 :(得分:0)

试试这个 用记事本打开配置文件 更换 HTTP:// <强>服务器名 / ArcGIS的/休息/服务/底图/地图服务器/# 同 HTTP:// <强> SERVERIP / ArcGIS的/休息/服务/底图/地图服务器/#