资源描述
Flash平安的一些总结WEB平安 电脑资料
了下Flash平安相关的知识,后面会再完善
一、先来说crossdomain.xml这个文件
flash如何跨域通信,全靠crossdomain.xml这个文件,
比方下面的列子:
1、.a.域下不存在crossdomain.xml文件,那么不允许除了.a.域之外的其他任何域下的flash进展跨域请求。
2、.a.域下存在crossdomain.xml文件,如假设配置 allow-aess-from 为.b.,那么只允许.b.域下的flash进展跨域请求,以及自身域.a.的网络请求。
crossdomain.xml需严格遵守XML语法,有且仅有一个根节点cross-domain-policy,且不包含任何属性。在此根节点下只能包含如下的子节点:
site-control
allow-aess-from
allow-aess-from-identity
allow--request-headers-from
site-control
早期的flash允许从其他位置载入自定义的策略文件,目前最新版的flash在承受自定义的策略文件之前会去检查主目录的crossdomain.xml来判断是否承受自定义策略文件。该选项就由site-control进展控制。
不加该选项时,默认情况下flash不加载除主策略文件之外的其他策略文件,即只承受根目录下的crossdomain.xml,这样可以防止利用上传自定 义策略文件进展的攻击。如果需要启用其他策略文件,那么需要配置permitted-cross-domain-policies属性,该属性有以下五个 值: none: 不允许使用loadPolicyFile方法加载任何策略文件,包括此主策略文件。
master-only: 只允许使用主策略文件[默认值]。
by-content-type:只允许使用loadPolicyFile方法加载/S协议下Content-Type为text/x-cross-domain-policy的文件作为跨域策略文件。
by-ftp-filename:只允许使用loadPolicyFile方法加载FTP协议下文件名为crossdomain.xml的文件作为跨域策略文件。
all: 可使用loadPolicyFile方法加载目标域上的任何文件作为跨域策略文件,甚至是一个JPG也可被加载为策略文件!
例子:
允许通过/S协议加载头中Content-Type为text/x-cross-domain-policy的文件作为策略文件
允许加载任意文件作为策略文件
allow-aess-from
该选项用来限制哪些域有权限进展跨域请求数据。
allow-aess-from有三个属性
domain:有效的值为IP、域名,子域名代表不同的域,通配符*单独使用代表所有域。通配符作为前缀和域名进展组合代表多个域,比方*.weibo.,代表weibo.所有的子域。
to-ports:该属性值说明允许访问读取本域内容的socket连接端口范围。可使用to-ports="1100,1120-1125"这样的形式来限定端口范围,也可使用通配符(*)表示允许所有端口。
secure:该属性值指明信息是否经加密传输。当crossdomain.xml文件使用s加载时,secure默认设为true。此时将不允许flash传输非s加密内容。假设手工设置为false那么允许flash传输非s加密内容。
例子
a./crossdomain.xml文件内容如下
允许所有qq.的子域通过s对t.qq.域进展跨域请求。
allow-aess-from-identity
该节点配置跨域访问策略为允许有特定证书的跨域访问本域上的资源。每个allow-aess-from-identity节点最多只能包含一个signatory子节点。
allow--request-headers-from
此节点授权第三方域flash向本域发送用户定义的头。
allow--request-headers-from包含三个属性:
domain:作用及参数格式与allow-aess-from节点中的domain类似。
headers:以逗号隔开的列表,说明允许发送的头。可用通配符(*)表示全部头。
secure:作用及用法与allow-aess-from节点中的secure相同。
注:Flash 在自定义头中无法使用以下请求标题,并且受限制的词不区分大小写(例如,不允许使用 Get、get 和 GET)。 另外,如果使用下划线字符,这也适用于带连字符的词(例如,不允许使用 Content-Length 和 ContentLength):
Aept-Charset、Aept-Encoding、Aept-Ranges、Age、Allow、Allowed、Authorization、Charge-To、Connect、Connection、Content-Length、Content-Location、Content-Range、Cookie、Date、Delete、ETag、Expect、Get、Head、Host、Keep-Alive、Last-Modified、Location、Max-Forwards、Options、Post、Proxy-Authenticate、Proxy-Authorization、Proxy-Connection、Public、Put、Range、Referer、Request-Range、Retry-After、Server、TE、Trace、Trailer、Transfer-Encoding、Upgrade、URI、User-Agent、Vary、Via、Warning、-Authenticate 和 x-flash-version,
二、web应用中平安使用flash
设置严格的crossdomain.xml文件可以提高效劳端的平安性,在web应用中也会经常使用flash,一般是通过
ExternalCall.Simple(this.flashReadyCallback);
public static function Simple(arg0:String){
ExternalInterface.call(arg0);
return;
}
接收到外部传入的movieName没有进展处理,最后通过ExternalInterface.call()进展执行,这样就能够执行任意的javascript代码,如果在调用flash的时候设置的不够平安就是XSS漏洞。
所以在flash编程中如果需要通过参数接收外部传入的数据,一定要对数据进展严格的检查,这样才能保证flash平安性。
参考文档:
Flash应用平安标准 .80sec./flash-security-polic.html
flash跨域策略文件crossdomain.xml配置详解hi.baidu./cxz/blog/item/7be889fa8f47a20c6c22eb3a.html
Cross-domain Policy File Specification.senocular./pub/adobe/crossdomain/policyfiles.html
?
展开阅读全文