关于跨域策略文件crossdomain.xml文件--配置实例
转载自:http://bbs.phpchina.com/blog-52440-191623.html
我一直不太明白crossdomain.xml文件是干嘛用的,今天总算比较清楚的知道了一下。 这是Flash安全沙盒机制:在Flash跨域访问时——比如www.ddonwi.com/loader.swf文件要加载hi.ddonwi.com/beauty1.swf文件,就属于跨域(名)访问——Flash要求通过如下的策略来确定信任关系: 1、被访问域名下的crossdomain.xml文件 以之前提的例子为例:loader.swf文件要加载beauty1.swf文件时,会先拉取hi.ddonwi.com/crossdomain.xml文件,这个文件里会列出允许访问的域名,比如hi.ddonwi.com/crossdomain.xml文件的格式可能如下: <?xml version="1.0"?> 它说明了www.ddonwi.com是可信任的域名。 如果访问者的域名不在再被访者的crossdomain.xml的信任名单内,Flash就不会去加载文件。 2、不仅如此,Flash还有进一步的保护措施,被拉取的swf文件中还需要调用Security.allowInsecureDomain()声明允许的访问者的域名。如果被访者没有写这个信任策略,swf文件可以被下载,但不能被执行。
实例介绍:
http://www.xiaonei.com/crossdomain.xml <!– http://www.xiaonei.com/ –>? <cross-domain-policy> <allow-access-from domain=”*.xiaonei.com”/> <allow-access-from domain=”xiaonei.com”/> </cross-domain-policy> 这是很标准的做法,我就让我自己的域以及我的子域来获取数据。 淘宝的: http://www.taobao.com/crossdomain.xml <cross-domain-policy><allow-access-from domain=”*.taobao.com”/> <allow-access-from domain=”*.taobao.net”/> <allow-access-from domain=”*.taobaocdn.com”/> <allow-access-from domain=”*.allyes.com”/> </cross-domain-policy> 红色的一行是淘宝的CDN所在的域,所谓内容分发网络。 绿色的一行是淘宝的广告商了,http://www.allyes.com/好耶广告网络,只是不清楚是不是仍然再卖淘宝的广告? 多看几个大网站的crossdomain.xml,也可以知道可能是什么网络广告商给它们在打广告。 比如彭博:http://www.bloomberg.com/crossdomain.xml <cross-domain-policy><allow-access-from domain=”localhost”/> <allow-access-from domain=”10.16.136.107″/> <allow-access-from domain=”*.bloomberg.com”/> <allow-access-from domain=”*.pointroll.com”/> <allow-access-from domain=”*.pointroll.net”/> </cross-domain-policy> 红色的就太不专业了,把内部IP都给暴露了。。。。。。 绿色的是彭博的广告商:PointRoll 路透的: http://www.reuters.com/crossdomain.xml <cross-domain-policy><allow-access-from domain=”*.reuters.com” secure=”false”/> <allow-access-from domain=”ad.doubleclick.net” secure=”false”/> <allow-access-from domain=”ad.uk.doubleclick.net” secure=”false”/> <allow-access-from domain=”m.2mdn.net” secure=”false”/> <allow-access-from domain=”m2.2mdn.net” secure=”false”/> </cross-domain-policy> 广告给了doubleclick来做(绿色) 2mdn.net看不懂是干嘛的,大概是个cdn吧。 滥情的facebook: http://www.facebook.com/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=”master-only” /> <allow-access-from domain=”s-static.facebook.com” /> <allow-access-from domain=”static.facebook.com” /> <allow-access-from domain=”static.api.ak.facebook.com” /> <allow-access-from domain=”*.static.ak.facebook.com” /> <allow-access-from domain=”s-static.thefacebook.com” /> <allow-access-from domain=”static.thefacebook.com” /> <allow-access-from domain=”static.api.ak.thefacebook.com” /> <allow-access-from domain=”*.static.ak.thefacebook.com” /> <allow-access-from domain=”*.static.ak.fbcdn.com” /> <allow-access-from domain=”external.ak.fbcdn.com” /> <allow-access-from domain=”*.static.ak.fbcdn.net” /> <allow-access-from domain=”external.ak.fbcdn.net” /> <allow-access-from domain=”www.facebook.com” /> <allow-access-from domain=”www.new.facebook.com” /> <allow-access-from domain=”register.facebook.com” /> <allow-access-from domain=”login.facebook.com” /> <allow-access-from domain=”ssl.facebook.com” /> <allow-access-from domain=”secure.facebook.com” /> </cross-domain-policy> 这么多!有子域,有CDN,有thefacebook(facebook的旧域名吧?) 还是google的专业: <?xml version=”1.0″?><!DOCTYPE cross-domain-policy SYSTEM “http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”> <cross-domain-policy> <site-control permitted-cross-domain-policies=”by-content-type” /> </cross-domain-policy> 蓝色行的意思是,要符合要求的文件你才能取,不管你是哪来的flash数据请求。符合要求的文档必须满足:Content-Type: text/x-cross-domain-policy
另:
当Flex访问WebService服务时,在本地能够正常访问,当部署到web容器中发布为web服务后,再调用WebServicIE,此时就会被拒绝访问,这就是Flex跨域访问的沙箱问题, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |