Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 使用crossdomain.xml访问URL时发生闪存安全错误_Apache Flex_Flash_Actionscript 3_Security - Fatal编程技术网

Apache flex 使用crossdomain.xml访问URL时发生闪存安全错误

Apache flex 使用crossdomain.xml访问URL时发生闪存安全错误,apache-flex,flash,actionscript-3,security,Apache Flex,Flash,Actionscript 3,Security,我最近在服务器上部署了一个Flash应用程序,现在在发出HTTPService请求时遇到错误。我已经将我认为最允许的crossdomain.xml放在wwwroot文件夹中,但仍然得到了错误 有趣的是,只有当用户通过直接交互(即点击按钮)发出请求时,才会出现错误。应用程序发出其他通过其他方式(即creationComplete)发起的请求,并且它们似乎按照预期工作 有人认为crossdomain.xml有什么问题,或者有其他建议吗 错误消息 [RPC Fault faultString=“访问u

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

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

有人认为crossdomain.xml有什么问题,或者有其他建议吗

错误消息

[RPC Fault faultString=“访问url时发生安全错误”faultCode=“Channel.Security.error”faultDetail=“Destination:DefaultHTTP”] 在mx.rpc::AbstractInvoker/ 在mx.rpc::Responder/fault()处 在mx.rpc::AsyncRequest/fault()处 在DirectHTTPMessageResponder/securityErrorHandler()上 at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() 在flash.net::urloader/redirectEvent()上


您需要小心处理这些跨域策略文件,因为它们可能会打开一些严重的安全漏洞。在使用cookie或基本身份验证的站点上,您不应使用*策略,也不应在intranet服务器上使用*策略

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

试试这个 用记事本打开配置文件 代替 http://servername/arcgis/rest/services/BaseMap/MapServer/# 具有
http://serverip/arcgis/rest/services/BaseMap/MapServer/#

您能详细说明为什么收紧crossdomain.xml如此重要吗?似乎除了使用flash之外,还有很多更简单的方法来尝试攻击某人的服务器……这就是为什么它很重要:啊,好吧,因为AJAX不允许跨域脚本
<!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>