Play 中的内容安全策略 headers!框架

Content Security Policy headers in Play! Framework

我对使用 Play 的内容安全策略有疑问!框架(2.6)。

我在项目中添加了一个用于绘制图表的外部库,javascript 文件在项目中并且图表渲染良好。

我遇到的问题是我的控制台左右喷出错误。这是我不断收到的错误:

Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-GPjBVmsZjSEoackW5SF7HKgSHcUUBqf1/TJwOl3Co7Y='), or a nonce ('nonce-...') is required to enable inline execution.

在寻找解决此问题的方法时,我遇到了诸如在 HTML 中包含元标记之类的东西,但在 Play 中却没有任何作用。我还尝试将 ContentSecurityHeader 放入 application.conf 中,如下所述: https://www.playframework.com/documentation/2.6.x/SecurityHeaders 那也没有用。在开发我的项目时,我也遇到了关于 default-src 'self' 的错误,我认为这将是相同类型的修复,并且它与我没有得到正确的配置有关。

如果有人必须进行此类配置,我会喜欢一些关于如何正确配置我的应用程序的指示。

提前致谢!

将这一行 play.filters.disabled += "play.filters.headers.SecurityHeadersFilter" 添加到 application.conf 文件,这对我有用

为了允许来自 cdn 的图像,以下对我有用(Play 版本 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'"

但是有一个警告:

Banning inline script is the biggest security win CSP provides, and banning inline style likewise hardens your application. HTML5 Rocks - Content Security Policy (2017-11-18)