【问题标题】:Refused to frame '' because it violates the following Content Security (Empty Frame URL)拒绝框架'',因为它违反了以下内容安全性(空框架 URL)
【发布时间】:2018-10-17 12:45:57
【问题描述】:

我有一个在 nginx 下运行的 Jira 实例,我们在 nginx 中配置了一些 CSP。 p>

现在我们正在安装一个应用,该应用会生成触发浏览器扩展的链接,URLsgoedit 开头:

应用的供应商建议使用此 CSP 标头:

add_header 内容安全策略

default-src https: goedit: wss: 'unsafe-inline' 'unsafe-eval'; 
img-src https: data: 'unsafe-inline'" always;

我现在正在尝试将其合并到我们的 CSP 标头中。 我们的 CSP 标头包括

frame-src '' https://assets.zendesk.com https://www.facebook.com https://$server_name;

当我现在单击该应用程序的链接之一时,我在控制台中收到以下错误消息:

拒绝框架'',因为它违反了以下内容安全政策

directive: "frame-src https://assets.zendesk.com https://www.facebook.com https://my-server.dein-james.de".

我想知道:我需要在 frame-src 中添加什么来允许这种链接 ('')?

我宁愿不删除整个 frame-src 部分,我想保留那些列入白名单。

提前致谢 延斯

【问题讨论】:

    标签: nginx content-security-policy


    【解决方案1】:

    我知道这是一个相当古老的线程,但我今天遇到了类似的问题。我使用的是 data: 在 object-src 中,我必须确保 data: 在 frame-src 中。

    因此我会检查你在 frame-src 中是否包含任何架构,我怀疑它可能是 goedit: 或 wss: 在你的例子中?

    【讨论】:

    • 谢谢,我没有意识到“数据:”被视为源/协议。
    【解决方案2】:

    虽然这很旧,但我发现:

    1. Stefan 的解决方案有效。
    2. 我遇到了这样一种情况,即动态 iframe(意思是动态添加的 iframe)试图加载 pdf 以进行良好的显示(在 chrome 中),尽管 scp 包含 frame-src 的“self”,而 pdf 来自当前域,一些用户看不到内容,他们的控制台显示上述错误。搞砸之后,发现只是在 chrome 浏览器中有一个设置需要调整 - 进入设置,搜索“pdf”并找到可以为 pdf 切换的部分.

    【讨论】:

    • 附注Stefan 的解决方案有效的原因是,通过上述设置,chrome 将 iframe 对象转换为它自己的数据对象,这是当前 pdf 的“下载”按钮的实现。因此将“数据:”添加到 csp 策略中,允许加载该数据对象。但是当然,您会看到一个下载按钮,而不是文档。这都是针对具有上述错误的 pdf 的情况。希望这对其他类型的文件也有帮助或适用。
    猜你喜欢
    • 2020-06-23
    • 2018-07-02
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多