原則檔中包含單獨一個
<cross-domain-policy>
標籤,其中再包含零個或多個
<allow-access-from>
標籤。每一個
<allow-access-from>
標籤中都包含一個特質,即
domain
,它指定了確實的 IP 位址、確實的網域,或者萬用字元網域 (任何網域)。萬用字元網域會以下列兩種方式的其中一種指示:
字尾必須用一點為開頭。然而,有字尾的萬用字元網域可比對找出只含有該字尾而沒有最前端一點的網域。例如,xyz.com 被視為屬於 *.xyz.com 的一部分。在 IP 網域規格中不允許萬用字元。
下面是一個 URL 原則檔的範例,允許存取源自 *.example.com、www.friendOfExample.com 和 192.0.34.166 的 SWF 檔:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*.example.com" />
<allow-access-from domain="www.friendOfExample.com" />
<allow-access-from domain="192.0.34.166" />
</cross-domain-policy>
如果指定了一個 IP 位址,則只允許使用 IP 語法 (例如 http://65.57.83.12/flashmovie.swf) 從該 IP 位址載入的 SWF 檔進行存取,使用網域名稱語法載入的 SWF 檔則無法存取。Flash Player 不會執行 DNS 解析。
您可以允許存取源自任何網域的文件,如下列範例所示:
<?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml -->
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
每個
<allow-access-from>
標籤也都有選擇性的
secure
特質,此特質預設為
true
。如果原則檔是位於 HTTPS 伺服器上,而您想要讓位於非 HTTP 伺服器上的 SWF 檔可以透過 HTTPS 伺服器載入資料,則您可以將此特質設為
false
。
將
secure
特質設為
false
有可能會破壞 HTTPS 所提供的安全性。尤其是此特質設定為
false
,將會讓安全性內容門戶洞開而遭受窺探與攻擊。Adobe 強烈建議您不要將
secure
特質設定為
false
。
如果要載入的資料位於 HTTPS 伺服器上,但載入端 SWF 檔位於 HTTP 伺服器上,Adobe 建議您將載入端 SWF 檔移到 HTTPS 伺服器上。如此一來,就可以讓您所有的安全資料都在 HTTPS 的保護之下。但是,如果您決定必須將載入端 SWF 檔放在 HTTP 伺服器中,請將
secure="false"
特質加入至
<allow-access-from>
標籤,如下列程式碼所示:
<allow-access-from domain="www.example.com" secure="false" />
另一個您可以用來准許存取的元素是
allow-http-request-headers-from
標籤。這個元素會授與用戶端權限,從另一個網域裝載內容,以傳送使用者定義的檔頭到您的網域。
<allow-access-from>
標籤可以授與其他網域權限從您的網域拉出資料,而
allow-http-request-headers-from
標籤則是授與其他網域權限推入資料到您的網域,以檔頭的形式進行。在下列範例中,任何網域都准許傳送 SOAPAction 檔頭到目前的網域:
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="SOAPAction"/>
</cross-domain-policy>
如果
allow-http-request-headers-from
陳述式是在主原則檔中,它會套用於主機上的所有目錄。否則,僅套用於包含該陳述式之原則檔的目錄及其子目錄。