如何放宽内容安全策略

您好!我经常这样做,但使用的是 Docker 安装。假设您在生产环境中使用我们标准的 Docker 安装,那么对于您的验收测试,您应该使用相同的方法。开发和 Docker 安装之间存在很大的差异(配置、gem 和 JS 包版本等),这可能会在部署时引起头痛。

Docker 安装默认使用并强制执行 HTTPS。除非您想自定义容器模板(我发现它有一些隐藏的复杂性),否则您可以通过另一个站点设置来关闭 HTTPS 强制执行。

这是我用于“放宽本地 Docker 安装中的安全性”的片段,在进入生产环境之前可以轻松恢复:

SiteSetting.content_security_policy = false
SiteSetting.force_https = false

然后,您只需确保您的浏览器可以在 http://uat.mysite.com 找到 Docker 容器上的端口 80——请注意,您将使用 http 而不是 https。

为此,@pfaffman 的 /etc/hosts 技巧是可行的方法;每个操作系统的详细信息请参见此处。