asp.net-core - 未设置 HSTS
问题描述
我正在尝试使用 Asp.Net Core 3 设置一个 Http Strict-Transport-Security 标头。我让它在开发环境中工作得非常好,无论何时发布到 Heroku(使用https://elements.heroku.com/buildpacks /jincod/dotnetcore-buildpack)标题永远不会出现(在任何页面上,通过 http 和 https)。
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
app.UseHsts(hsts => hsts.IncludeSubdomains().MaxAge(hours: 1));
} else {
app.UseExceptionHandler("/About/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts(hsts => hsts.IncludeSubdomains().MaxAge(days: 366));
}
任何帮助是极大的赞赏!
我试过的
我尝试在 Configure 中使用内置的 UseHSTS 方法并将 AddHSTS 添加到 ConfigureServices。比我尝试使用具有相同选项的 NWebsec 包的 UseHSTS(在配置中)没有成功。
解决方案
这里https://github.com/jincod/AspNetCoreDemoApp/blob/master/src/AspNetCoreDemoApp/Startup.cs的示例配置
配置服务:
services.AddHttpsRedirection(options => { options.HttpsPort = 443; })
...
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor |
ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
配置:
app.UseForwardedHeaders();
...
app.UseHttpsRedirection();
更多信息https://devcenter.heroku.com/articles/http-routing#routing和https://github.com/aspnet/Announcements/issues/301
推荐阅读
- java - MYSQL Left join 失败,java 中出现“未知列”
- zapier - 同时添加新人和新交易
- apache-kafka - 来自不同消费者组的多个消费者如何从同一个分区中读取数据?
- c# - 为一群人提供可见性 Web 选项卡,从数据库获取数据到布局页面 | ASP.NET 核心 3.1
- c# - System.Net.WebClient() DownloadUsingWebClientAsync 在 .netcore 3.1 中工作,但不适用于 .netcore 2.2(代理后面)
- jquery - 我如何在光滑的滑块中只显示三张幻灯片?
- python - 如何解决“AttributeError:模块'xmltodict'没有属性'parse'”。?
- mysql - 已经有一个与此连接关联的打开的数据读取器,必须首先关闭它 vb.net.vb
- excel - Excel VBA 脚本 - 窃取焦点
- batch-file - 在带有批处理文件的弹出窗口上发送回车键