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 头,因为它可以减轻因意外或恶意行为添加到您站点的过于宽松的策略文件所带来的风险。

头类型 响应头
禁止请求头

语法

http
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
<?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

http
X-Permitted-Cross-Domain-Policies: none

规范

已记录在Adobe 跨域策略文件规范中。

另见