`

跨域策略文件——解决Flash安全沙箱问题

阅读更多
一、基础解说


用 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>


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

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

http://localhost:8080/crossdomain.xml 。
2) 如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flex中就需要在初始化的时候应用
Security.loadPolicyFile("http:// localhost:8080/aaa /crossdomain.xml");

其中aaa为webapp的名称
这样,外部Flex访问该服务发布的WebService时,flashplayer首先找的就是crossdomain.xml文件,若安全机制设置为允许访问,则访问成功。





二、详细讲解:

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

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

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>







三、举例:

1、下面的代码是一个策略文件,它允许从 aeroflash.org 上的 Flash 文档访问来自 aeroflash.org、 www.friendOfAeroflash.org、*.www.aeroflash.org 和 123.321.0.1 的 Flash 文档:



<?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"?>

<!-- http://www.aeroflash.org/crossdomain.xml -->

<cross-domain-policy>

  <allow-access-from domain="*" />

</cross-domain-policy>
分享到:
评论

相关推荐

    java ,c#,delphi 解决flash安全沙箱问题

    当我们面临“Java, C#, Delphi 解决 Flash 安全沙箱问题”的场景时,这意味着我们需要在这些编程语言中处理与 Flash 沙箱相关的安全问题,以确保应用程序的安全性和合规性。 首先,让我们深入了解一下 Flash 的安全...

    flash安全沙箱汇总

    在IT行业中,安全沙箱是一种重要的安全机制,尤其在Flash技术中扮演着核心角色。Flash安全沙箱的主要目的是为了限制并隔离运行的Flash内容,防止它们对用户系统造成潜在的危害。下面将详细介绍Flash安全沙箱的基本...

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

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

    Silverlight 跨域策略文件.zip

    1. 安全性:跨域策略文件应当谨慎配置,避免过于宽松的权限可能导致敏感信息泄露或恶意攻击。 2. 更新策略:当应用程序的访问需求变化时,记得及时更新策略文件。 3. 适应性:考虑到不同的客户端可能有不同的需求,...

    ASP.NET Core微服务(三)——【跨域配置】——对应练习demo(跨域)

    在现代Web开发中,跨域问题常常出现,特别是当我们的应用由多个服务或API组成时。跨域是指一个源(origin)试图访问另一个源的资源时,浏览器基于同源策略限制了这种行为。而ASP.NET Core提供了一种灵活的方式来处理...

    lex for arcgis java tomcat环境不能跨域问题 (安全沙箱问题2048

    总的来说,解决Flex for ArcGIS在Java Tomcat环境下的跨域问题,主要涉及理解浏览器的同源策略,正确配置`crossdomain.xml`文件,并确保服务器重启以使更改生效。对于开发和测试环境,广泛接受的权限设置可能是合适...

    ArcGIS API for Flex开发WebGIS中的安全沙箱问题

    在WebGIS开发中,安全沙箱主要指的是Flash Player的安全限制,它将Flash内容限制在其被加载的源(即SWF文件所在的域)内,以防止恶意代码跨域访问敏感信息。这种机制被称为“安全沙箱”,分为本地沙箱和网络沙箱两种...

    ActionScript 3.0安全沙箱及相关问题资料

    综上所述,这个压缩包包含的资料详细讲解了ActionScript 3.0的安全沙箱机制、跨域通信策略以及实际应用中可能遇到的问题和解决方案。通过学习这些文档,开发者可以更好地理解和应对ActionScript 3.0在安全方面的挑战...

    Silverlight跨域文件

    "跨域文件"是解决这种问题的关键工具。本文将深入探讨Silverlight跨域策略、问题的成因以及如何设置和使用跨域文件。 首先,理解什么是跨域问题。在Web浏览器的安全模型中,出于安全考虑,JavaScript或Silverlight...

    源于FLEX中的安全沙箱问题

    3. **沙箱策略**: - **远程沙箱**:控制浏览器环境中的远程域策略,不同域被视为独立。 - **本地沙箱**:分为只能访问本地文件的沙箱和只能访问远程内容的沙箱,以及两者都能访问的受信任沙箱。 4. **跨域策略*...

    Flex 安全沙箱问题 简单处理方法

    Flex安全沙箱问题是一个在开发基于...总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时关注服务器端的实现细节,以确保应用程序既能正常运行,又能保障用户的安全。

    file协议导致的跨域问题以及解决方案.docx

    同源策略与 File 协议导致的跨域问题解决方案 同源策略是出于安全考虑而诞生的约定,...同源策略是为了安全而设定的约定,ES6 模块化也需要遵守同源策略,而 File 协议导致的跨域问题可以通过不同的解决方法来解决。

    跨域下载文件

    "跨域下载文件"是解决这一问题的关键技术,尤其是在构建分布式应用或者API服务时,用户可能需要从不同的服务器获取资源。本篇文章将深入探讨如何实现跨域文件下载,并通过`HttpWebRequest`类来解决相关问题。 首先...

    全面认识Flex安全沙箱

    - **管理用户控制**:系统管理员可以通过mms.cfg文件和全局FlashPlayer信任目录来设定全局安全策略。 - **用户控制**:普通用户可以控制摄像头、麦克风的使用,以及共享对象的存储设置。 - **Web站点控制**:通过...

    解决ajax不能访问本地文件问题(利用js跨域原理)

    然而,由于浏览器的安全策略,AJAX默认无法直接访问本地文件系统,这主要是为了防止恶意脚本获取用户的本地数据。本文将探讨如何利用JavaScript的跨域原理来解决这个问题。 首先,我们要理解什么是跨域。跨域是指一...

    pdfjs 跨域预览文件(完整版t)

    跨域加载文件是 Web 开发中的常见问题,由于同源策略的限制,浏览器通常不允许 JavaScript 从不同源获取数据。但是,PDF.js 提供了解决这一问题的方案,允许在服务器上预处理 PDF 文件,然后通过 JSONP 或 CORS(跨...

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

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

Global site tag (gtag.js) - Google Analytics