CSP frame-ancestors - 如何屏蔽除一页以外的整个域?

CSP frame-ancestors - How to block the entire domain except one page?

我有一个网站,我想让它显示在另一个域的 Iframe 中。 我正在使用 PHP header 来允许这样做。但是,我只希望我的站点 运行 在特定页面上,而不是整个域。

我有这个代码:header ("Content-Security-Policy: frame-ancestors https://example.com/");

我只想允许特定的 URL(例如:https://example.com/example.php),但实际上整个域都可以在 Iframe 中显示我的网站。

提前致谢!

一般来说,内容安全策略允许在指令中使用 path-part 甚至 filename。规则 script-src example.com/js/script.js 将只允许加载指定的脚本。

但是frame-ancestors指令很特殊。 Firefox 在源代码中支持 using paths,但 Chrome 浏览器不支持。

很可能,Chrome 的这种行为是由于 frame-ancestors 规范了您的资源在第三方资源上的嵌入。在此指令中使用路径和文件名将限制第三方资源的所有者在未经您同意的情况下更改 Url 结构。总的来说,这很不方便。