拒绝框架 '' 因为它违反了以下内容安全策略指令:“frame-src *”

Wor*_*orp 9 google-chrome apache-2.4 centos7 content-security-policy

由于内容-安全-策略设置,我找到了许多针对“拒绝 xyz”的各种情况的解决方案。

但是,如果''被拒绝,我似乎无法找到可能有什么问题。

浏览器中的文字错误消息是

Refused to frame '' because it violates the following Content Security Policy directive: "frame-src *".
Run Code Online (Sandbox Code Playgroud)

它只发生在 Chrome 中。在 Firefox 或 Internet Explorer 中加载页面工作正常。

我设置了以下 CSP(这实际上是一行。为了便于阅读,我添加了新行):

default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval';
style-src 'self' 'unsafe-inline';
img-src 'self' data:;
frame-src 'self' *;
object-src 'none';
font-src 'self' data:;
Run Code Online (Sandbox Code Playgroud)

现在我的理解*是“一切”。Chrome 不爱我的原因是什么?

旁注:我们已经评估除暴安良'unsafe-inline''unsafe-eval',但我们不能在此刻。如果这可能导致我的问题,请指出如何。否则,我知道这是一个安全隐患,我们正​​在努力摆脱它。现在它就在这里。

设置:网络服务器是一个 Apache:

# rpm -q httpd
httpd-2.4.6-80.el7.centos.1.x86_64
Run Code Online (Sandbox Code Playgroud)

edit1 尝试从网站内打开客户端的邮件程序时发生该错误。用户点击一个链接,邮件程序就会打开。

这可能就是 Chrome 将空字符串 ( '')显示为被阻止内容的原因。

小智 7

今天正好遇到这个问题。我通过使用解决了它

frame-src data:
Run Code Online (Sandbox Code Playgroud)

顺便提一句。'*' 只是 url 的通配符。data: 'unsafe-inline' 和 'unsafe-eval' 必须单独添加。