【问题标题】:Play framework - Content Security Policy setting doesn't work?播放框架 - 内容安全策略设置不起作用?
【发布时间】:2016-11-08 07:49:54
【问题描述】:

我用sbt搭建了一个play-scala-seed项目,并添加了一个简单的:

<button id="doclick" onclick="doConsole();">click</button>

但是当我启动项目并单击按钮时。控制台给出错误输出:

localhost/:17 拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“default-src *”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-...”)或随机数(“nonce-...”)。另请注意,'script-src' 未显式设置,因此 'default-src' 用作后备。

应用程序.conf

play.http.filters = "filter.Filters"
play.filters.headers.contentSecurityPolicy="script-src 'self' 'unsafe-inline'"

只要关注官方文档play-securityheaders

我是否遗漏了什么或获取了错误的路径导致仍然无法调用内联脚本?

【问题讨论】:

  • 你解决了吗?

标签: playframework


【解决方案1】:

我遇到了同样的问题,经过 2 小时的摆弄找到了解决方案。

我正在使用编译时依赖注入,并将应用程序mixin从HttpFiltersComponents更改为NoHttpFiltersComponents,从而解决了问题。

【讨论】:

  • 请记住,这会禁用所有安全标头。您可以通过将play.filters.headers.contentSecurityPolicy = null 添加到application.conf 来禁用CSP 标头。但这也是个坏主意。
猜你喜欢
  • 1970-01-01
  • 2018-06-01
  • 2016-09-10
  • 2019-09-22
  • 2021-10-31
  • 2021-12-25
  • 2019-05-25
  • 1970-01-01
  • 2018-01-14
相关资源
最近更新 更多