Cross-domain 策略文件詳解
2024-09-12 17:51:31
供稿:網友
crossdomain.xml最通常放置的地方是一個domain的root文件夾,flash player會默認檢測這個路徑下的crossdomain.xml文件,這個root目錄下的crossdomain.xml叫做master policy file,大家記住這個概念,下面會用到。
crossdomain.xml的Schema就是那個http://www.adobe.com/xml/dtds/cross-domain-policy.dtd,詳細規定了crossdomain.xml每個節點的屬性選項,大家可以自己去瀏覽。
crossdomain.xml的根節點必須是cross-domain-policy:
它包含三個子節點:site-control, allow-access-from, allow-http-request-headers-from
無屬性
節點介紹:
site-control
這個節點定義當前域的meta-policy
meta-policy決定這個域中除了master policy file以外哪些策略文件可以被client接受
如果這個策略文件并不是master policy file,site-control這個節點就會被忽略。
如果你用ActionScript指定使用某個非master policy file的策略文件,你必須先檢查master policy file的這個子節點以確認你指定的那個policy file是被授權的。
site-control的屬性permitted-cross-domian-policies有5個選項:none--任何policy file都不被允許,包括master policy file。master-only不用解釋了。by-content-type--當HTTP頭的Content-Type值為text/x-cross-domain-policy才被允許。by-ftp-filename--只有以文件名結尾的URL才被允許。all--不用介紹。默認值是master-only,除了socket policy file,它的默認值是all。
allow-access-from
allow-http-request-headers-from
===============================================
Adobe 強烈不推薦的允許所有資源訪問的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="all"/>
<allow-access-from domain="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>