Content-Security-Policy: frame-ancestors 指令

Baseline 已广泛支持

此功能已非常成熟,可在许多设备和浏览器版本上运行。自 2018 年 1 月起,它已在所有浏览器中可用。

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

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

注意:frame-ancestors 允许你指定哪个父源可以嵌入页面。这与 frame-src 不同,后者允许你指定页面中的 iframe 可以从何处加载。

注意:frame-ancestors 指令会检查每个祖先。如果任何祖先不匹配,则取消加载。因此,在使用嵌套帧时,所有祖先都应由叶帧的 frame-ancestors 指令允许。

CSP 版本 2
指令类型 导航指令
default-src 回退 否。不设置此项则允许任何内容。
此指令不支持在 <meta> 元素中使用。

语法

http
Content-Security-Policy: frame-ancestors 'none';
Content-Security-Policy: frame-ancestors <source-expression-list>;

此指令可以具有以下值之一

'none'

此资源可能不会被嵌入。单引号是强制性的。

<source-expression-list>

一个以空格分隔的源表达式值列表。如果嵌入者与任何给定源表达式匹配,则此资源可以被嵌入。对于此指令,以下源表达式值适用

注意:frame-ancestors 指令的语法类似于其他指令(例如 child-src)接受的源列表语法,但它不回退到 default-src 设置。声明 default-src 'none' 的策略仍然允许任何人嵌入资源。

示例

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

Content-Security-Policy: frame-ancestors 'self' https://www.example.org;

Content-Security-Policy: frame-ancestors 'self' https://example.org https://example.com https://store.example.com;

规范

规范
内容安全策略级别 3
# directive-frame-ancestors

浏览器兼容性

另见