1

我试图通过Content-Security-Policy在节点层的响应标题中设置它来禁用我网站上的所有 iframe。根据Mozilla Developer Network,从客户端的角度来看,该属性应如下所示:

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

没关系,这就是我在中间件的 Node 层中设置它的方式:

app.use(function (req, res, next) {
    /* Clickjacking prevention */
    res.header('Content-Security-Policy', "frame-ancestors 'none'")
    next()
})  

这是我检查网络活动时它在客户端的显示方式:

在此处输入图像描述

但是,当我嵌入 YouTube iframe 时,如下所示:

<iframe
 width="420"
 height="345"
 src="https://www.youtube.com/embed/tgbNymZ7vqY"/>

它没有被禁用。为什么框架祖先策略似乎没有效果?在 Chrome 上测试它的价值。

4

1 回答 1

2

frame-ancestors指定哪些页面可以框定当前页面

如果你想限制可以在当前页面上的 iframe,你可以使用child-src.

但是,该child-src指令也适用于网络工作者。您可以使用worker-src指令覆盖它

于 2019-03-12T09:42:36.227 回答