`

发布HTML跨域安全沙箱

 
阅读更多

         1.当将Flash发布成Html之后,Socket将无法连接。

 

错误代码:

[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]

问题原因:

flashplayer升级到9.0.115.0之后,当flash文件要进行socket通信的时候,需要向服务器端获取crossdomain.xml文件。在9.0.115.0之前的版本的flash是可以和socket进行正常通信的。在升级后的版本后,就出现客户端无法连接服务器的现象。

 

 

  2.urlload跨域访问文件

在同一个域名下,在默认的沙箱中,可以访问同域下的所有资源并且可以相互读取和执行彼此的逻辑代码,这是对称的权限。

 

在不同的域名下,默认情况下可以发送信息到其他域,但不能从其他域取数据。

<!--[if !supportLists]-->1.       <!--[endif]-->获取非Swf脚本文件,如:静态文本,图片等。 需要配置crossdomain.xml文件

<!--[if !supportLists]-->2.       <!--[endif]-->获取Swf脚本文件。则需要在本访问的Swf文件中,设置允许其他域的访问

  Security.allowDomain("*"); 

允许所标识的域中的 SWF 文件和 HTML 文件访问包含 allowDomain() 调用的 SWF 文件中的对象和变量。

Security.allowInsecureDomain("*");

允许所标识的域中的 SWF 文件和 HTML 文件访问执行调用的 SWF 文件中的对象和变量,该文件是使用 HTTPS 协议承载的。

 

 

 

关于LoaderUrlLoader跨域读取文件时的注意点:

<!--[if !supportLists]-->1.       <!--[endif]-->当使用Loader读取文件的时候,Flash不会自动载入域名下的crossdomain.xml文件。需要手动的设置:Security.loadPolicyFile("http://192.168.1.80/crossdomain.xml"); 才能加载。

<!--[if !supportLists]-->2.       <!--[endif]-->使用UrlLoader读取文件的时候,Flash直接会自动载入域名下的crossdomain.xml文件。

 

 

Crossdomain.xml 简单配置说明

<cross-domain-policy>

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

</cross-domain-policy>

 

 

 

crossdomain.xml需严格遵守XML语法,有且仅有一个根节点cross-domain-policy,且不包含任何属性。在此根节点下只能包含如下的子节点:

site-control

allow-access-from

allow-access-from-identity

allow-http-request-headers-from

 

site-control通过检查该节点的属性值,确认是否可以允许加载其他策略文件。每个site-control标签有且仅有属性permitted-cross-domain-policies,该属性指定相对于非主策略文件的其他策略文件的加载策略。

permitted-cross-domain-policies属性值有如下情况:

none: 不允许使用loadPolicyFile方法加载任何策略文件,包括此主策略文件。

master-only: 只允许使用主策略文件[默认值]

by-content-type:只允许使用loadPolicyFile方法加载HTTP/HTTPS协议下Content-Typetext/x-cross-domain-policy的文件作为跨域策略文件。

by-ftp-filename:只允许使用loadPolicyFile方法加载FTP协议下文件名为crossdomain.xml的文件作为跨域策略文件。  

all: 可使用loadPolicyFile方法加载目标域上的任何文件作为跨域策略文件,甚至是一个JPG也可被加载为策略文件![使用此选项那就等着被xx吧!]

例:

<cross-domain-policy>

     <site-control permitted-cross-domain-policies="by-content-type" />

</cross-domain-policy>

 

 

allow-access-from通过检查该节点的属性值,确认能够读取本域内容的flash文件来源域。

allow-access-from标签有三个属性:

 

domain:该属性指定一个确切的IP地址、一个确切的域或一个通配符域(任何域)。只有domain中指定的域,才有权限通过flash读取本域中的内容。

Tips:当domain被指定为IP地址时,只接受使用该IP作为网址来访问的来源请求[此时ip地址也就相当于一个域名而已],如domain被设置为192.168.1.100时,使用http://192.168.1.100/flash.swf来请求该域内容是允许的,但是使用指向192.168.1.100的域名www.a.com来访问时[http://www.a.com/flash.swf]将会被拒绝,因为flash不懂得dns解析:

 

to-ports:该属性值表明允许访问读取本域内容的socket连接端口范围。可使用to-ports="1100,1120-1125"这样的形式来限定端口范围,也可使用通配符(*)表示允许所有端口。

 

secure:该属性值指明信息是否经加密传输。当crossdomain.xml文件使用https加载时,secure默认设为true。此时将不允许flash传输非https加密内容。若手工设置为false则允许flash传输非https加密内容。

 

allow-access-from-identity该节点配置跨域访问策略为允许有特定证书的来源跨域访问本域上的资源。每个allow-access-from-identity节点最多只能包含一个signatory子节点。

<allow-access-from-identity>

   <signatory>

     <certificate

       fingerprint="01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef:01:23:45:67"

       fingerprint-algorithm="sha-1"/>

   </signatory>

</allow-access-from-identity>

 

 

 

allow-http-request-headers-from此节点授权第三方域flash向本域发送用户定义的http

allow-access-from节点授权第三域提取本域中的数据,而 allow-http-request-headers-from节点授权第三方域将数据以http头的形式发送到本域中。[简而言之,allow-access-from是控制读取权限,allow-http-request-headers-from是控制以http头形式的写入权限]

allow-http-request-headers-from包含三个属性:

·domain:作用及参数格式与allow-access-from节点中的domain类似。

·headers:以逗号隔开的列表,表明允许发送的http头。可用通配符(*)表示全部    http头。

·secure:作用及用法与allow-access-from节点中的secure相同。

在下面的示例中,任何域都可以向当前域发送 SOAPAction 标头:

<cross-domain-policy>

     <allow-http-request-headers-from domain="*" headers="SOAPAction" />

</cross-domain-policy>

 

 

 

最后说明:

1allow-access-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源跨域请求本域内容。禁止将该属性值设置为“*”。

2allow-http-request-headers-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源向本域跨域发送内容。禁止将该属性值设置为“*”。

3 site-control标签的permitted-cross-domain-policies属性检测:根据业务的实际需求及可行性,对该属性做相应设置。禁止将该属性值设置为“all”。

分享到:
评论

相关推荐

    flash安全沙箱汇总

    随着HTML5等现代技术的兴起,Flash逐渐被淘汰,许多浏览器已经停止支持Flash,这在一定程度上降低了Flash沙箱安全问题的影响。 五、总结 Flash安全沙箱是Flash平台为了保证用户安全而设计的关键机制。它通过划分...

    源于FLEX中的安全沙箱问题

    沙箱的安全控制涉及管理员、用户、网络设置和作者设置等利益相关方,他们分别控制权限,包括文件请求、本地数据存储、跨域策略和特定域内容的使用。 【标签】:“安全” 【内容详解】: 1. **安全沙箱机制**: ...

    iframe 跨域 自动适应高度

    同源策略是浏览器安全的一项基础机制,它限制了来自不同源的"文档"或脚本相互交互。当一个`iframe`加载的页面与包含它的页面不在同一个源下时,就会遇到跨域问题。为了解决这个问题,我们可以使用以下几种方法: ...

    iframe与主框架跨域相互访问

    4. **HTML5的sandbox属性**:`iframe`的`sandbox`属性可以开启一个沙箱模式,限制`iframe`的行为,包括禁止脚本执行、禁止跨域等。这对于加载不可信的第三方内容非常有用。 5. **JSONP(JSON with Padding)**:...

    flash安全的各个方面的问题

    Flash是早期广泛应用于网页开发的一种交互式多媒体技术,但随着技术的发展和安全问题的凸显,逐渐被HTML5等更安全的替代品所取代。本文主要探讨了Flash安全的多个方面,帮助我们理解Flash应用程序可能面临的威胁以及...

    Flex 与 html 交互 调用本地html

    5. **注意事项**:调试模式下可能无法显示本地HTML,这可能是因为沙箱安全限制。你需要确保在发布或测试环境中运行,或者更改Flash Player的安全设置以允许本地文件访问。此外,确保HTML和Flex的版本兼容,因为不同...

    Siverlight 的安全性概览

    总结,构建安全的Silverlight应用程序需要全面考虑多个安全层面,包括沙箱模型、网络交互、应用隔离以及数据验证。只有在这些方面都做好充分准备,才能确保用户的体验和数据安全。开发者应持续关注最新的安全威胁和...

    flex安全机制详解

    为了确保安全性,Flex采用了一套完整的安全机制来控制不同域之间的通信,其中包括了沙箱机制和安全策略文件的应用。 #### 二、沙箱机制 Flex的安全机制之一就是沙箱机制,它限制了SWF文件能够访问的资源范围,以...

    Electron 安全检查清单.docx

    然而,这也带来了额外的安全风险,因为代码不再像在浏览器环境中那样受到严格的沙箱保护。 **安全风险与责任** 在 Electron 中,展示不受信任的远程内容可能导致严重的安全问题,因为 Electron 并不处理这种风险。...

    JS跨域取XML--借助AS的URLLoader

    本文没有直接提及Flash的安全沙箱模型,但了解其基本原理对于理解Flash应用的跨域限制非常重要。 知识点七:父页面与子iframe间的通信 当父页面与嵌入的iframe处于不同的域时,它们之间的通信会受到限制。本文提到...

    C#生成Html并在WebBrowser中显示

    需要注意的是,WebBrowser控件的安全性是受限的,因为它基于IE内核,可能会受到浏览器沙箱的限制。例如,它可能不允许执行某些JavaScript功能或加载跨域资源。在实际应用中,你可能需要考虑这些问题。 通过以上...

    白帽子讲Web安全 读书笔记一

    - **浏览器沙箱**:通过创建一个隔离的执行环境,使得浏览器中的进程可以在相对独立的空间内运行,从而降低潜在的安全威胁。 - **跨站脚本攻击(XSS)** - **定义**:一种常见的Web安全漏洞,攻击者通过注入恶意...

    关于HTML5的安全问题开发人员需要牢记的

    3. **Iframe安全**:HTML5的iframe标签新增了沙箱属性,可以限制嵌入内容的行为,减少恶意第三方内容的影响。但正确使用沙箱属性需要深入理解其工作原理,否则可能会被开发者忽视或误用,导致安全防护失效。开发人员...

    appContainer_html5

    首先,HTML5应用容器的主要职责是提供一个沙箱环境,使应用程序能够安全地运行,而不会干扰其他Web页面或用户的系统。它通常包括以下几个关键组件: 1. **资源管理**:容器负责加载和管理HTML、CSS和JavaScript文件...

    flash安全paper

    - **沙箱机制**:限制Flash应用程序的访问权限,防止跨域攻击。 - **跨域策略**:定义了Flash应用程序如何与其他域中的资源进行交互的规则。 #### 四、ActionScript介绍 - **定义**:ActionScript是一种用于构建...

    caja-spec

    3. **安全策略**:详细阐述Caja的安全策略,如DOM隔离、事件处理限制、CSS和HTML的白名单策略,以及如何防止跨域数据泄露。 4. **API接口**:Caja为开发者提供了一些API,允许他们在安全的环境中编写和运行代码。...

    在iframe、frame之间,js的相互访问、修改

    当我们谈论在`iframe`、`frame`之间通过JavaScript进行相互访问和修改时,涉及到的知识点主要包括DOM操作、跨域安全、同源策略以及一些特殊的技术和技巧。 1. 同源策略:同源策略是浏览器为了保障用户信息安全而...

    TEST HTML iframe

    7. **安全性**:`sandbox`属性可以为`iframe`添加安全沙箱环境,限制其执行脚本、访问本地文件等操作,增加安全性。 8. **无缝链接**:`iframe`可以实现无缝链接,让用户感觉是在同一个页面内操作,提高用户体验。 ...

    白帽子讲Web安全

    【白帽子讲Web安全】是一本专注于Web安全领域的学习资料,涵盖了从基础概念到高级攻防策略的广泛知识。以下是对书中的主要内容的详细解析: 1. **专业术语解析** - **Exploit**:黑客利用系统漏洞编写的攻击代码。...

Global site tag (gtag.js) - Google Analytics