Content-security-policy:生产模式下的角度启动和Spring Boot应用程序

问题描述 投票:1回答:1

我正在使用Angular应用程序作为前端应用程序的Spring Boot应用程序。从背面,我按照上面的说明发送CSP策略

.and()
            .headers()
            .contentSecurityPolicy(default-src 'self'; frame-src 'self'; script-src 'self' 'unsafe-inline' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self'; font-src 'self' object-src; require-trusted-types-for 'script')

当我在开发人员上运行该应用程序,并且更改了CSP策略时,在Angular前端的控制台上收到错误是很正常的事情。当我在产品上运行应用程序时,甚至我都使用

更改了CSP策略。

default-src'self'

应用程序继续运行,这很奇怪。

所以我的问题是:

  1. Angular在哪里获得有关代码的CSP策略?
  2. 在生产模式下,我们可以有CSP政策吗?

PS:我正在使用Angular版本8.2.4

angular spring-boot content-security-policy
1个回答
1
投票

Angular在哪里获得有关代码的CSP策略?

正确的答案是-没有。 Angular代码对Content-Security-Policy标头不做任何事情(也不应该知道)。 CSP标头是browser的哪些资源以及可以使用的地方的说明。

简单示例:

Content-Security-Policy: default-src https:

当浏览器看到此指令时,它将拒绝从HTTP加载任何内容。如果您尝试从HTTP获取脚本,由于没有可用的脚本,角度甚至都不会启动。

在生产模式下,我们可以有CSP政策吗?

是。 CSP是非常有用的工具,可以大大提高应用程序的安全性。因此,如果您关心客户,则应考虑CSP(以及功能策略)。

但是进行设置非常耗时。我花了一两天为自己找到最佳组合。

尝试一下(不要忘了用google.api进行调整):

default-src 'none'; img-src 'self' data:; font-src 'self'; connect-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; object-src 'none'

希望这会有所帮助!

upd

Here,您可以找到有关CSP的更多信息(并且以更好的方式编写)

© www.soinside.com 2019 - 2024. All rights reserved.