拒绝框架 '' 因为它违反了以下内容安全策略指令

Refused to frame '' because it violates the following Content Security Policy directive

我们使用 Confluence Companion 工具在本地编辑来自 Confluence 的文件 (https://confluence.atlassian.com/doc/edit-files-170494553.html),但自从该工具的上次更新以来,它不再有效。我发现这是因为我们在 NGINX 中设置了 CSP 指令,但不管我做了什么改变;没有任何效果。

原始 CSP 指令:

add_header Content-Security-Policy "default-src https: wss: blob: goedit: 'unsafe-inline' 'unsafe-eval'; connect-src https://*.atlassian.com 'self' ws:; img-src blob: https: data: 'unsafe-inline' *; font-src https: data:" always;

结果: Refused to frame '' because it violates the following Content Security Policy directive: "default-src https: wss: blob: goedit:". Note that 'frame-src' was not explicitly set, so 'default-src' is used as a fallback.

所以我想,让我们添加 frame-src;

add_header Content-Security-Policy "default-src https: wss: blob: goedit: 'unsafe-inline' 'unsafe-eval'; connect-src https://*.atlassian.com 'self' ws:; frame-src 'self'; img-src blob: https: data: 'unsafe-inline' *; font-src https: data:" always;

但现在它报告了;

Refused to frame '' because it violates the following Content Security Policy directive: "frame-src 'self'".

有点迷路了,首先为什么它加载....什么都没有?只是'',我希望那里有一个网站或其他东西,但无论我对 frame-src 进行什么更改,它都会一直抱怨。

我尝试了什么:

frame-src 'self';
frame-src '*';
frame-src '';
frame-src 'self' data:;
frame-src '*.mydomain.com';
frame-src 'none';

甚至尝试通过 X-FRAME-OPTIONS 允许所有帧以及添加帧祖先并以各种方式组合上述所有内容,但结果是一样的。

非常感谢帮助。

谢谢!

Confluence 7.3+ 启动了带有前缀为 atlassian-companion: 的自定义协议的 Companion。这是使用隐藏的 iframe 构建的,以防止页面重定向。

因此,要解决此问题,请将 atlassian-companion: 添加到内容安全策略中的 default-srcframe-src 排除项。例如:frame-src atlassian-companion:;