crossdomain.xml 对于 flash跨域调用文件的使用

本文讨论了在公司内部图片管理系统中使用Simpleviewerflash插件进行图片浏览时遇到的跨域访问问题。通过分析crossdomain.xml文件配置,解释了如何解决仅允许主策略文件及特定IP地址下的HTTPS加密内容访问问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提:公司内部图片管理系统采用了网站系统和图片分开管理,而图片管理系统中采用了 Simpleviewer flash插件进行图片浏览。

之前一个系统上图片幻灯浏览是没问题的,但是分开2服务器后就不行了。
一开始以为只是地址调用错误,发现地址调整后还是存在这个问题。
通过开发人员工具发现,在载入幻灯页的时候,会出现一个crossdomain.xml 加载失败的报错。

网上查了下,原来当flash进行跨域文件读取的时候。需要crossdomain.xml 的支持,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。

<cross-domain-policy>
    <site-control permitted-cross-domain-policies="master-only" />
    <allow-access-from domain="192.168.1.222" secure="true" />
</cross-domain-policy>

第一句:只允许使用主策略文件(根目录下的策略文件)
第二句:只允许ip 192.168.1.222 传输https加密内容

当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解析:)

其实这个策略文件还有2个节点属性可以配置(但是这里暂时没有用到)

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头。

<cross-domain-policy>
     <allow-http-request-headers-from domain="*" headers="SOAPAction" />
</cross-domain-policy>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值