【问题标题】:Refused to display in a frame because an ancestor violates the following Content Security Policy directive拒绝在框架中显示,因为祖先违反了以下内容安全策略指令
【发布时间】:2017-03-14 09:18:40
【问题描述】:

我正在开发一个 salesforce 应用程序,该应用程序在 salesforce 页面的 iframe 中呈现。使用 node express 服务器来呈现这个页面。作为安全审查的一部分,我只想在 salesforce 页面中呈现,如果嵌入到其他任何地方,则阻止。

为此,我添加了 content-security-policy 标头,如下所示:

response.header("Content-Security-Policy", "frame-ancestors salesforce.com");

但它也在 salesforce 页面上被阻止。

错误:

拒绝在框架中显示“https://localhost:8000/authenticate”,因为祖先违反了以下内容安全策略指令:“frame-ancestors salesforce.com”。*

我的 iframe 正在呈现的 salesforce 应用程序网址:https://ap4.salesforce.com/0016F00001vmoMu

我尝试在指令中将域指定为 *.salesforce.com。但它也没有工作。

有人可以帮我解决我做错的地方吗?

【问题讨论】:

  • 是否有子域,例如subdomain.salesforce.com?
  • salesforce 应用程序网址:ap4.salesforce.com/0016F00001vmoMu 我试图将域作为 *.salesforce.com 仍然不幸运
  • 也许策略继承了使用的端口。我会尝试一下 -> https://*.salesforce.com:* 如果这没有帮助,我会在浏览器的开发人员工具中仔细检查 DOM,以查看祖先树。
  • 我们必须添加响应头:X-Frame-Options。在向客户端提供响应之前,我已在 Nginx 中添加:add_header X-Frame-Options "ALLOW-FROM ap8.salesforce.com";

标签: javascript node.js security content-security-policy owasp


【解决方案1】:

设置此政策使其能够在所有浏览器中呈现

 add_header Content-Security-Policy "frame-src 'self' https://salesforce.com;"

【讨论】:

    【解决方案2】:

    尝试删除 https 并添加类似子域

    add_header Content-Security-Policy "frame-src 'self' www.salesforce.com;"
    

    【讨论】:

      【解决方案3】:

      我试图在一个框架中打开一个完整页面,修复是标签的目标属性,例如

      w3 Schools

      【讨论】:

        猜你喜欢
        • 2020-06-23
        • 2021-09-08
        • 2018-07-02
        • 1970-01-01
        • 2012-11-27
        • 2015-09-21
        • 1970-01-01
        • 2019-05-09
        相关资源
        最近更新 更多