6

将 Swisscom CloudFoundry 解决方案与 Spring Boot 应用程序一起使用时,Strict-Transport-Security会向 HTTPS 响应添加两个标头。我调查了这个问题,发现 CloudFoundry 解决方案添加了几个标头。默认情况下,Spring BootStrict-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
4

1 回答 1

4

感谢您的报告。我们目前只插入(而不是替换)HSTS 标头,因为我们不知道某些框架会默认添加它。我们将考虑始终覆盖标头,因为重复的标头可能没有意义,而且我们设置的默认值适用于大多数用例。

目前:您可以禁用在 Spring Boot 中设置 HSTS 吗?根据Spring boot docs,您应该可以使用以下代码段禁用它:

@EnableWebSecurity
public class WebSecurityConfig extends
        WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            // ...
            .headers()
                .frameOptions().sameOrigin()
                .httpStrictTransportSecurity().disable();
    }
}

更新:我们将很快改变这种行为:如果应用程序尚未设置标头,Appcloud 只会设置标头。因此,我们将选择权留给开发人员是否以及如何实现 HSTS,但它将提供默认值。

更新 2:新行为已经到位。

于 2017-10-10T20:57:19.127 回答