X-Permitted-Cross-Domain-Policies 頭
HTTP X-Permitted-Cross-Domain-Policies 響應頭定義了一個元策略,它控制在像 Adobe Acrobat 或 Microsoft Silverlight 這樣的 Web 客戶端中執行的文件是否可以跨域訪問站點資源。
當網站需要宣告跨域策略,但無法寫入域的根目錄時,可以使用此頭。
自 Adobe Flash Player 和 Microsoft Silverlight 被棄用後,此頭的使用已不那麼常見。一些安全測試工具仍會檢查是否存在 X-Permitted-Cross-Domain-Policies: none 頭,因為它可以減輕因意外或惡意行為新增到您站點的過於寬鬆的策略檔案所帶來的風險。
語法
X-Permitted-Cross-Domain-Policies: <permitted-cross-domain-policy>
指令
none-
目標伺服器上不允許存在任何策略檔案,包括主策略檔案。
僅主策略檔案-
允許跨域訪問同一域上定義的主策略檔案。
按內容型別(僅限 HTTP/HTTPS)-
只允許使用
Content-Type: text/x-cross-domain-policy提供的策略檔案。 按 FTP 檔名(僅限 FTP)-
只允許檔名為
crossdomain.xml(URL 以/crossdomain.xml結尾)的策略檔案。 all-
允許此目標域上的所有策略檔案。
此響應無策略檔案-
表示當前文件不應作為策略檔案使用,無論其包含的其他頭或內容如何。此值僅限於 HTTP 頭。
描述
Web 客戶端(如 Adobe Acrobat 或 Apache Flex)可以載入 Web 文件,這些文件又可能載入來自同一站點或其他站點的資源。由於同源策略,預設情況下訪問被限制為同站資源,但跨源站點可以選擇使用特殊檔案(稱為跨域策略檔案)向客戶端跨源提供部分或全部資源。
“主”跨域策略檔案可以定義為域根目錄中的 crossdomain.xml 檔案,例如:http://example.com/crossdomain.xml。主檔案使用 <site-control> 標籤的 permitted-cross-domain-policies 屬性為整個站點定義元策略。元策略控制是否允許任何策略,以及使用其他“子”跨域策略檔案的條件。這些其他策略檔案可能在特定目錄中建立,以指定對其給定目錄樹中的檔案的訪問許可權。
例如,這是限制最少的主策略定義,它不允許任何訪問,也不允許使用其他“子”策略檔案。
<?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="none"/>
</cross-domain-policy>
X-Permitted-Cross-Domain-Policies 頭可以為包含它的 HTTP 響應指定元策略,或者在存在的情況下覆蓋主跨域策略檔案中定義的元策略。它採用與檔案的 permitted-cross-domain-policies 屬性相同的值,並額外包含 none-this-response。
最常見的情況是,在開發人員無法在站點根目錄中建立主跨域策略檔案時,它用於阻止對站點資源的任何訪問。
示例
禁止跨域策略檔案
如果您不需要在 Adobe Flash Player 或 Adobe Acrobat(或舊版客戶端)等客戶端中載入應用程式資料,則應將此頭配置為 X-Permitted-Cross-Domain-Policies: none
X-Permitted-Cross-Domain-Policies: none
規範
已記錄在Adobe 跨域策略檔案規範中。