如何将本地站点添加到内容安全策略的框架祖先?

时间:2018-12-19 16:08:33

标签: security iis

我们最近在我们的网站上实施了内容安全政策,以限制可以对其进行内嵌的网站。我们托管在IIS上,并且web.config中的行如下所示:

<add name="Content-Security-Policy" value="frame-ancestors *.website.com *.otherwebsite.com" />

这可以工作,因为只有指定的测试环境才能在网站中内嵌iframe。

我们当前的问题是,我们的客户无法在其本地开发环境中访问该站点,因为该站点已被上述政策阻止。他们的本地站点是在IIS中设置的,其主机文件中的条目与CSP中允许的域之一dev.website.com相匹配。

我们尝试添加以下内容

  • 本地主机:*
  • 127.0.0.1:*
  • dev.website.com

很遗憾,没有一个有效。任何帮助将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:1)

这将是一个迟到的回复,但我也试图在 web.config 中找出这个问题,在尝试了其他一些模式后,这个对我有用:

<add name="Content-Security-Policy" value="frame-ancestors 'self' *.example.com *.example.net http://localhost:8005" />

答案 1 :(得分:0)

我有同样的问题;对我来说,只有在localhost上指定端口(我在Express上工作)时,它才能工作:

app.use(helmet.contentSecurityPolicy({
    directives: {
      frameAncestors: ["https://some-domain.app", "http://localhost:3000"]
    }
  }))

这使我可以在localhost上加载包含iframe的网站,以进行本地开发。