将Swisscom CloudFoundry解决方案与Spring Boot应用程序一起使用时,会在HTTPS响应中添加两个Strict-Transport-Security
标头。我已经研究过这个问题,并发现CloudFoundry解决方案添加了几个标题。默认情况下,Spring Boot已添加Strict-Transport-Security
标头(在安全站点上),这会导致两个不同的HSTS标头。
我想在我的应用程序中配置应用程序的标头。有没有办法禁用Swisscom CloudFoundry解决方案的自动标题添加?
如果没有,有没有办法告诉Swisscom Cloud覆盖现有的Strict-Transport-Security
标题而不是将其附加到标题列表中?
来自Spring Boot应用程序的HTTP响应,部署了Swisscom Cloud,然后包含以下两个标题:
Strict-Transport-Security:max-age=31536000 ; includeSubDomains
Strict-Transport-Security:max-age=15768000; includeSubDomains
答案 0 :(得分:4)
感谢您的报告。我们目前只插入(而不是替换)HSTS标头,因为我们不知道某些框架默认添加它。我们将考虑始终覆盖标题,因为重复的标题可能没有意义,我们设置的默认值适用于大多数用例。
目前:你能禁用在Spring Boot中设置HSTS吗? 根据{{3}},您应该可以使用此代码段禁用它:
@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.headers()
.frameOptions().sameOrigin()
.httpStrictTransportSecurity().disable();
}
}
更新:我们很快就会改变这种行为:如果应用程序尚未设置标题,Appcloud将只设置标题。因此,我们将选择留给开发人员,如果他想要实施HSTS,那么它将提供默认值。
更新2 :新行为已到位。