ASP.NET Core 应用程序中的 Strict-Transport-Security max-age 未更新到 31536000

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

我正在尝试在 ASP.NET Core 应用程序中设置 Strict-Transport-Security 标头,以强制使用最长期限为 1 年(31536000 秒)的 HTTPS,以及 includeSubDomains 和预加载。但是,当我检查浏览器中的标头时,最大年龄值始终设置为 2592000(30 天)而不是 31536000。

这是我正在使用的中间件代码:

app.Use(async (context, next) =>
{
    if (!env.IsDevelopment())
    {
        context.Response.Headers.Append("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload");
    }
    await next();
});

我也验证过:

应用程序正在生产环境中运行(env.IsDevelopment() 为 false)。 浏览器缓存已被清除。 该应用程序部署在启用了 HTTPS 的 Azure 上。 为什么 Strict-Transport-Security 标头中的 max-age 值没有更新为 31536000? Azure 或 ASP.NET Core 中是否有任何配置可能会覆盖此值?

azure asp.net-core https content-security-policy strict-transport-security
1个回答
0
投票
builder.Services.AddHsts(options =>
{
    options.Preload = true;
    options.IncludeSubDomains = true;
    options.MaxAge = TimeSpan.FromDays(60);
    options.ExcludedHosts.Add("example.com");
    options.ExcludedHosts.Add("www.example.com");
});
© www.soinside.com 2019 - 2024. All rights reserved.