我已经找到了许多解决因内容安全策略设置而导致“拒绝 xyz”的各种情况的解决方案。
然而,我似乎找不到''
被拒绝可能是什么问题。
浏览器中的文字错误消息是
Refused to frame '' because it violates the following Content Security Policy directive: "frame-src *".
这只发生在 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:;
现在我的理解是*
“一切”。Chrome 为何对我如此冷漠?
旁注:我们已经评估过如何移除它'unsafe-inline'
,'unsafe-eval'
但目前还不能。如果这可能导致我的问题,请指出原因。否则,我知道这是一个安全隐患,我们正在努力移除它。目前它还留在这里。
设置:Web 服务器是 Apache:
# rpm -q httpd
httpd-2.4.6-80.el7.centos.1.x86_64
编辑1 尝试从网站内打开客户端的邮件程序时发生错误。用户点击链接后邮件程序应该会打开。
这可能就是为什么 Chrome 显示空字符串 ( ''
) 作为被阻止的内容。
答案1
今天遇到了同样的问题。我通过使用以下方法解决了它
frame-src data:
顺便说一句。'*' 只是 URL 的通配符。数据:“unsafe-inline”和“unsafe-eval”必须单独添加。