`
keren
  • 浏览: 1583347 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转](原创)flex解决跨域问题的策略文件的写法

    博客分类:
  • Flex
 
阅读更多
http://hi.baidu.com/wosinmaiken/blog/item/637a6e4b998a49fe82025c85.html
(原创)flex解决跨域问题的策略文件的写法
2010年09月08日 星期三 19:46
整理自:
http://hi.baidu.com/taotao5453/blog/item/b4b9f924ae26933f8644f94a.html
http://space.flash8.net/space/?388361/viewspace-701237.html


/***************************策略文件 crossdomain.xml***************************/

一、基础解说
用Flash文档访问另一个域中的数据。Flash Player会自动试图从该域加载策略文件。
如果试图访问数据的Flash文档所在的域包括在该策略文件中,则数据将自动成为可访问数据。
策略文件必须命名为 crossdomain.xml,并且可以驻留在服务器的根目录和其它目录之中,这个服务器提供要被访问的ActionScript数据。
每个策略文件对于它所驻留的服务器的端口和协议是特定的,只有在通过HTTP、HTTPS或FTP进行通信的服务器上,策略文件才起作用。
flashplayer升级到9.124之后,加强了安全性,之前的crossdomain.xml的写法发生了变化,以下就是该文件的完整写法:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

表示该服务允许任何外域来访问。
关于crossdomain.xml的放置目录问题,有如下解决方案,可放置在:

1/ 如果这个目录是容器的根目录,可以通过以下的url访问crossdomain.xml:
    http://localhost:8080/crossdomain.xml 。

2/ 如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flex中就需要在初始化的时候应用
    Security.loadPolicyFile("http:// localhost:8080/direc/crossdomain.xml");
    其中direc是webapp的名称。
    这样,外部Flex访问该服务发布的WebService时,flashplayer首先找的就是crossdomain.xml文件,若安全机制设置为允许访问,则访问成功。


二、详细讲解:
    crossdomain.xml的根节点必须是cross-domain-policy:
    * 它包含三个子节点:site-control, allow-access-from, allow-http-request-headers-from
    * 无属性
   
    节点介绍:
    * site-control
    * 这个节点定义当前域的meta-policy
    * meta- policy决定这个域中除了master policy file以外哪些策略文件可以被client接受
    * 如果这个策略文件并不是 master policy file,site-control这个节点就会被忽略。
    * 如果你用ActionScript指定使用某个非master policy file的策略文件,你必须先检查master policy file的这个子节点以确认你指定的那个policy file是被授权的。
    * site-control的属性permitted-cross-domian-policies有5个选项:
      none--任何policy file都不被允许,包括master policy file。
      master-only不用解释了。
      by-content-type--当HTTP头的Content-Type值为text/x- cross-domain-policy才被允许。
      by-ftp-filename--只有以文件名结尾的URL才被允许。
      all--不用介绍。
      默认值是master-only,除了socket policy file,它的默认值是all。
    * allow-access-from
    * allow-http-request-headers-from

===============================================

总:

1、 策略文件写法:

<?xml version="1.0"?>
<!-- http://www.aeroflash.org/crossdomain.xml -->
<cross-domain-policy>
<allow-access-from domain="www.friendOfAeroflash.org" />
<allow-access-from domain="*.aeroflash.org" />
<allow-access-from domain="123.321.0.1" />
</cross-domain-policy>


2、 通配策略文件(无限制访问):

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>


3、 Adobe 强烈不推荐的允许所有资源访问的crossdomain.xml文件:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.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>
分享到:
评论

相关推荐

    flex跨域访问问题

    综上所述,解决Flex跨域访问问题的关键在于理解同源策略,合理利用CORS、策略文件或代理服务,并在服务器端和客户端进行相应的配置。正确配置后,Flex应用就能安全地跨域获取和发送数据了。在实际项目中,应根据具体...

    flex 跨域访问文件

    flex 跨域访问文件,安全沙相问题,很有用的,放在iis里就行了

    Tomcat配置解决跨域问题

    【标题】:“Tomcat配置解决跨域问题” 在Web开发中,跨域(Cross-Origin)是一种常见的安全限制,它阻止浏览器从一个源加载资源到另一个不同的源。这主要是为了防止恶意脚本通过注入来窃取数据。然而,在进行前后...

    javascript插件 解决双向跨域问题

    在JavaScript编程中,跨域(Cross-Origin)是一个常见的问题,特别是在Web开发中,当尝试从一个源(如一个域名、协议或端口)加载资源到另一个源时,浏览器的安全策略通常会阻止这种行为,以防止恶意脚本从不受信任...

    window.name解决跨域问题的文档

    window.name 解决跨域问题的文档 window.name 传输技术是 Thomas Frank 发明的,旨在解决 cookie 的一些劣势,例如每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法的复杂等等。后来,Kris ...

    完美解决iframe跨域问题

    总结,通过理解iframe跨域问题的本质以及各种解决方案,我们可以根据实际需求选择合适的策略。`window.name`跨域通信虽然存在一定的局限性,但在某些场景下能提供一种实用的跨域数据传递手段。在实际开发中,结合...

    解决跨域问题的服务端配置文件

    js 调用 webservice服务,出现的跨域问题,可通过在服务端修改web.config来解决服务端的跨域问题

    解决跨域问题的jar资源文件.zip

    在这个“解决跨域问题的jar资源文件.zip”中,包含了两个关键的JAR文件:cors-filter-2.4.jar 和 java-property-utils-1.9.1.jar。这两个库是针对Java Web应用的,用于处理跨域请求。 `cors-filter-2.4.jar` 是一个...

    Silverlight 跨域策略文件.zip

    当涉及到跨域通信时,Silverlight同样需要遵循一定的规则和配置,这就是"跨域策略文件"的角色所在。 跨域策略文件是XML文档,通常命名为`clientaccesspolicy.xml`或`crossdomain.xml`,它定义了哪些其他源可以访问...

    arcgis js跨域解决策略

    通过以上策略,你可以成功地在.NET或Java环境下解决arcgis js的跨域问题,确保GIS应用的正常运行。不过,需要注意的是,跨域问题的解决方案应根据项目需求和安全性考虑进行选择,确保既能满足功能需求,又能保障数据...

    weblogic跨域flex

    总结来说,解决Flex在WebLogic上的跨域问题,主要是通过创建和发布跨域策略文件,以及在Flex客户端配置正确的策略文件路径。这使得Flex应用能够跨越浏览器的同源策略限制,与WebLogic服务器进行安全的数据交换。理解...

    解决跨域问题的文件

    本博客中提到的解决跨域问题代码。 下载本文件到本地 方法一: 1.随便打开一个cmd命令窗口 2.输入以下三条命令,即可重新启动chorm 第一句:TASKKILL /F /IM chrome.exe 第二句:start chrome.exe --args --disable-...

    nginx安装, 解决跨域问题

    **Nginx安装与解决跨域问题** 在现代Web开发中,由于浏览器的同源策略,跨域问题经常出现,限制了不同源之间的通信。Nginx作为一个高性能的反向代理服务器,常被用于处理此类问题。本篇将详细介绍如何在Linux环境下...

    Flex跨域问题

    Flex跨域问题,对于Flash Player 而言,crossdomain.xml文件内容出现了较大的变化,原因是Flash Player 9的security机制有所改变。所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml...

    tomcat跨域解决方案

    为了解决Tomcat在IP和端口不同时引发的跨域问题,可以通过编写并配置`crossDomain.xml`文件来实现跨域支持。下面将详细介绍几种常见的配置方式: ##### 1. 允许特定域名访问 在某些情况下,可能只需要允许来自特定...

    nginx解决跨域问题的实例方法

    浏览器的同源策略限制了JavaScript从一个源获取另一个源的数据,而Nginx作为一个强大的反向代理服务器,可以有效地解决这个问题。本篇文章将详细介绍如何利用Nginx解决跨域问题。 首先,了解跨域的基本概念。跨域是...

    Geoserver解决Tomcat跨域问题文件.rar

    标题中的“Geoserver解决Tomcat跨域问题文件”指的是针对使用Geoserver与Tomcat部署Web服务时遇到的跨域限制的解决方案。在Web开发中,跨域问题是一个常见的安全问题,它源于浏览器的同源策略,限制了JavaScript从一...

    flash跨域策略文件crossdomain.xml配置详解以及防范措施.docx

    总结,Flash 跨域策略文件 crossdomain.xml 是控制 Flash 应用程序跨域访问的关键。正确配置 crossdomain.xml 可以确保数据的安全传输,防止恶意跨域攻击。然而,配置不当可能导致敏感信息泄露或被利用,因此在设置...

    使用docker部署nginx前后端解决跨域问题.docx

    使用docker部署nginx前后端解决跨域问题

Global site tag (gtag.js) - Google Analytics