crossdomain.xml跨域配置文件的安全注意事项

摘要:
按ftp文件名:只有ftp协议下名为crossdomain.xml的文件才能使用loadPolicyFile方法作为跨域策略文件加载。只有域中指定的域才能通过flash读取此域的内容。使用https加载crossdomain.xml文件时,默认情况下secure设置为true*/摘要:不正确的crossdomainxml策略将导致严重的安全问题,如信息泄露、CSRF、,3)检测站点控制标签的允许跨域策略属性:根据业务的实际需要和可行性设置该属性。

零、绪论:

对WEB中的FLASH确实了解不多,对程序中的跨域配置也了解不多,这是自己以前写的一篇笔记,到现在也还了解不深,勉强记下来罢了,备忘。

一、什么是crossdomain.xml?
这是一个flash在跨域传输请求数据时要遵循的一个规则配置文件。例如a.com中swf文件要请求b.com中的数据,要检查该文件,如不存在则一律禁止跨域数据传输,如果存在按照相关配置的规则执行。该文件可以放在主目录对全站起效(必须有),也可以放在子目录下对该目录起效(可以有)。

二、如何配置该文件
(1)加载代码:
Security.loadPolicyFile(“http://www.xxx.com/subdir/crossdomain.xml”)
(2)配置语法
<cross-domain-policy>
<site-control permitted-cross-domain-policies=”by-content-type” />
/*
site-control:通过检查该节点的属性值,确认是否可以允许加载其他策略文件。[如果该策略文件并非主策略文件,则此节点被自动忽略]
每个site-control标签有且仅有属性permitted-cross-domain-policies,该属性指定相对于非主策略文件的其他策略文件的加载策略。permitted-cross-domain-policies属性值有如下情况:
none: 不允许使用loadPolicyFile方法加载任何策略文件,包括此主策略文件。
master-only: 只允许使用主策略文件[默认值]。
by-content-type:只允许使用loadPolicyFile方法加载HTTP/HTTPS协议下Content-Type 为text/x-cross-domain-policy的文件作为跨域策略文件。
by-ftp-filename:只允许使用loadPolicyFile方法加载FTP协议下文件名为 crossdomain.xml的文件作为跨域策略文件。
all: 可使用loadPolicyFile方法加载目标域上的任何文件作为跨域策略文件,甚至是一 个JPG也可被加载为策略文件![使用此选项那就等着被xx吧!]
*/


<allow-access-from domain=”*.qq.com” secure=”true” />
/*
allow-access-from标签有三个属性:
domain:该属性指定一个确切的 IP 地址、一个确切的域或一个通配符域(任何域)。只有domain中指定的域,才有权限通过flash读取本域中的内容。
可采用下列两种方式之一来表示通配符域:
(1)单个星号(*),如:<allow-access-fromdomain=”*” />,表示匹配所有域和所有 IP 地 址,此时任何域均可跨域访问本域上的内容。[这是极不安全的!]
(2)后接后缀的星号,表示只匹配那些以指定后缀结尾的域,如*.qq.com可匹配game.qq.com、qq.com。形如www.q*.com或www.qq.*的为无效配置。
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子节点。
*/
<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 domain=”*” headers=”SOAPAction” />
/*
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相同。
*/
</cross-domain-policy>


总结:
不正确的crossdomain.xml策略将导致严重的安全问题,如信息泄露、CSRF等。从上文中可以看出,在进行安全评估时,我们应重点关注以下几点:
1)allow-access-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源跨域请求本域内容。禁止将该属性值设置为“*”。
2)allow-http-request-headers-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源向本域跨域发送内容。禁止将该属性值设置为“*”。
3) site-control标签的permitted-cross-domain-policies属性检测:根据业务的实际需求及可行性,对该属性做相应设置。禁止将该属性值设置为“all”。

免责声明:文章转载自《crossdomain.xml跨域配置文件的安全注意事项》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用怎么给element表格添加必填*星号?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

informatica 学习日记整理

1. INFORMATICA CLIENT的使用 1.1Repository Manager 的使用 1.1.1创建Repository。 前提: a. 在ODBC数据源管理器中新建一个数据源连接至你要创建Repository的数据库(例:jzjxdev) b. 要在你要连接的数据库中新建一个用户(例:name: ETL password: E...

LINUX-文件的特殊属性

chattr +a file1 只允许以追加方式读写文件 chattr +c file1 允许这个文件能被内核自动压缩/解压 chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 chattr +s file1 允许一个文件被安全地删除 cha...

利用OpenXml生成Word2007文档

一、OpenXml简介 利用C#生成Word文档并非一定要利用OpenXml技术,至少可以使用微软提供的Office相关组件来编程,不过对于Office2007(确切的说是Word、Excel和PowerPoint2007)及以上版本,微软提供了这些信息组织的另外一种思路:OpenXml技术。         OpenXml是微软office2007及之后...

常用DOS命令之通俗易懂篇

目录 常用DOS命令之通俗易懂篇 Arp 命令 Assoc 关联 At 计划服务 Attrib 属性 Cd=chdir 目录 Cipher Cls 清屏 Color 颜色 Comp 比较 Compact 压缩 Copy 复制 Date 日期 Defrag 磁盘碎片 Del 删除文件 Dir 目录 Edit 编辑 Exit 退出 Expand 扩展...

jmeter 24个常用函数

JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便。 JMeter函数是一种特殊值,可用于除测试计划外的任何组件。 函数调用的格式如下所示:${__functionName(var1,var2,var3)}其中,__functionName为函数名,括号内是函数的参数,无参数时可以不用括号,如${__UUID} Tips:如果参数包含逗...

Unsupervised Open Domain Recognition by Semantic Discrepancy Minimization论文笔记

Unsupervised Open Domain Recognition by Semantic Discrepancy Minimization论文笔记 Abstract 本文的作者解决的是一个无监督的开放域识别(UODR)问题,而在开放域中的源域与目标域的情况中,⭐源域是目标域的一个子集,即一个未标记的目标域T和一个仅覆盖目标域分类子集的有差异的标记源...