内容安全策略框架祖先“没有”不起作用

时间:2019-03-11 19:30:20

标签: node.js iframe content-security-policy clickjacking

我正在尝试通过在节点层的响应的Content-Security-Policy标头中设置网站来禁用网站中的所有iframe。根据{{​​3}},从客户端的角度来看,该属性应如下所示:

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

很好,这是我在中间件的Node层中进行设置的方式:

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

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

Mozilla Developer Network

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

但是,child-src指令也适用于Web Worker。您可以使用worker-src指令

覆盖它