CSP: frame-ancestors

CSP: frame-ancestors

HTTP Content-Security-Policy(CSP)frame-ancestors指令指定有效的父级可以使用嵌入网页<frame>,<iframe>,<object>,<embed>,或<applet>。

将此指令设置'none'为类似于X-Frame-Options: DENY(旧版浏览器也支持此指令)。

CSP版本2
指令类型导航指令
默认-src后备不可以。

| 此指令在<meta>元素或Content-Security-policy-Report-Only标题字段中不受支持。|

句法

可以为frame-ancestors政策设置一个或多个来源:

Content-Security-Policy: frame-ancestors <source>; Content-Security-Policy: frame-ancestors <source> <source>;

来源

<source>可以是以下之一:

frame-ancestors指令的语法类似于其他指令的源列表(例如default-src,但不允许'unsafe-eval''unsafe-inline'例如,它也不会回退到default-src设置,只允许下面列出的来源:

通过名称或IP地址的<host-source> Internet主机,以及可选的URL方案and/or端口号。该站点的地址可能包含一个可选的前导通配符(星号字符'*'),并且可以使用通配符(再次'*')作为端口号,表示所有合法端口对于源都有效。

示例:

  • http://*.example.com:匹配使用http:URL方案从example.com的任何子域加载的所有尝试。

  • mail.example.com:443:匹配所有尝试访问mail.example.com上的端口443的尝试。

  • https://store.example.com:匹配所有尝试访问store.example.com使用https:

<scheme-source>一种模式,如'http:'或'https:'。冒号是必需的。您也可以指定数据模式(不推荐)。

  • ' data:'允许将data:URI用作内容源。这是不安全的;攻击者也可以注入任意数据:URI。谨慎使用这一点,绝对不适用于脚本。

  • 'mediastream:'允许将mediastream:URI用作内容源。

  • 'blob:'允许将blob:URI用作内容源。

  • 'filesystem:'允许将filesystem:URI用作内容源。

'self'指受保护文档的来源,包括相同的URL方案和端口号。你必须包括单引号。一些浏览器特别排除blobfilesystem从源指令。需要允许这些内容类型的网站可以使用Data属性来指定它们。'none'指空集;也就是说,没有URL匹配。单引号是必需的。

示例

Content-Security-Policy: frame-ancestors 'none';

产品规格

规范状态评论
内容安全策略级别3该规范中“框架祖先”的定义。编辑草稿没有变化。
内容安全策略级别2该规范中“框架 - 祖先”的定义。建议初始定义。

浏览器兼容性

特征ChromeFirefoxEdgeInternet ExplorerOperaSafari
基本支持4033.0(No)(No)2610

特征AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基本支持?(Yes)(No)33.0(No)?9.3