我对使用Play的内容安全策略有疑问!框架(2.6)。
我在项目中添加了一个外部库来绘制图表,javascript文件在项目中,图表渲染得很好。
我遇到的问题是我的控制台左右喷出错误。这是我不断得到的错误:
拒绝应用内联样式,因为它违反了以下内容 内容安全政策指令:" style-src' self'"。要么是 '不安全直插'关键字,哈希 (' sha256-GPjBVmsZjSEoackW5SF7HKgSHcUUBqf1 / TJwOl3Co7Y ='),或者一个nonce (' nonce -...')是启用内联执行所必需的。
在搜索如何解决此问题的过程中,我遇到了一些内容,例如在HTML中包含元标记,这在Play中没有任何作用。我还尝试将ContentSecurityHeader放在application.conf中,如下所述: init handling 这也行不通。在开发我的项目时,我也遇到了关于default-src' self'的错误,我认为它将是相同类型的修复,并且它与配置有关,我和#c;我没有做对。
如果有人不得不做这种类型的配置,我会喜欢关于如何正确配置我的应用程序的一些指示。
提前致谢!
答案 0 :(得分:10)
要允许来自cdn的图像,以下内容适用于我(播放版本2.6)
play.filters.headers.contentSecurityPolicy = "default-src 'self'; img-src 'self' https://my.img.cdn.com"
以下允许的内联样式属性:
play.filters.headers.contentSecurityPolicy = "default-src 'self'; style-src 'self' 'unsafe-inline'"
然而有一个警告:
禁止内联脚本是CSP提供的最大安全性胜利,禁止内联样式同样会增强您的应用程序。 HTML5 Rocks - Content Security Policy (2017-11-18)
答案 1 :(得分:4)
将此行 play.filters.disabled + =“play.filters.headers.SecurityHeadersFilter”添加到application.conf文件中,这对我有用