欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

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。谨慎使用这一点,绝对不适用于脚本。

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

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

示例

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

产品规格

规范

状态

评论

内容安全策略级别3该规范中“框架祖先”的定义。

编辑草稿

没有变化。

内容安全策略级别2该规范中“框架 - 祖先”的定义。

建议

初始定义。

浏览器兼容性

特征

Chrome

Firefox

Edge

Internet Explorer

Opera

Safari

基本支持

40

33.0

(No)

(No)

26

10

特征

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

基本支持

?

(Yes)

(No)

33.0

(No)

?

9.3

来自  https://cloud.tencent.com/developer/section/1189865

普通分类: