我们最近在我们的网站上实施了内容安全政策,以限制可以对其进行内嵌的网站。我们托管在IIS上,并且web.config中的行如下所示:
<add name="Content-Security-Policy" value="frame-ancestors *.website.com *.otherwebsite.com" />
这可以工作,因为只有指定的测试环境才能在网站中内嵌iframe。
我们当前的问题是,我们的客户无法在其本地开发环境中访问该站点,因为该站点已被上述政策阻止。他们的本地站点是在IIS中设置的,其主机文件中的条目与CSP中允许的域之一dev.website.com
相匹配。
我们尝试添加以下内容
很遗憾,没有一个有效。任何帮助将不胜感激,谢谢。
答案 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的网站,以进行本地开发。