【发布时间】:2019-03-04 12:17:44
【问题描述】:
在.net core 的启动文件的配置部分,我不太明白UseHsts 和UseHttpsRedirection 之间的区别。谁能解释一下?
【问题讨论】:
-
一个发生在浏览器端(HSTS),另一个发生在服务器端。
在.net core 的启动文件的配置部分,我不太明白UseHsts 和UseHttpsRedirection 之间的区别。谁能解释一下?
【问题讨论】:
根据文档,您应该同时使用两者:
我们建议所有生产 ASP.NET Core Web 应用调用:
- HTTPS 重定向中间件 (UseHttpsRedirection) 将所有 HTTP 请求重定向到 HTTPS。
- UseHsts,HTTP 严格传输安全协议 (HSTS)。
.UseHttpsRedirection() 将发出从 http 重定向到 https 的 HTTP 响应代码。 .UseHsts() 将添加 HSTS 响应 header which the client is supposed to obey.
【讨论】:
UseHttpsRedirection 和 UseHsts 都没有阻止传入的 http 请求?所以基本上它们只是对浏览器的说明?
UseHttpsRedirection 应该发出从 http 到 https 的重定向。 UseHsts 是一个标头,用于提醒浏览器,当他们回到这个站点时,跳过最初的 http 请求,直接转到 https。如果您想完全阻止 http,您需要在您的主机(iis、apache 等)上执行此操作。
我们建议所有生产 ASP.NET Core Web 应用调用:HTTPS 重定向中间件( UseHttpsRedirection )重定向所有 HTTP 对 HTTPS 的请求。使用Hsts,HTTP严格传输安全协议 (HSTS)。 ASP.NET Core 强制使用 HTTPS。这 。 UseHttpsRedirection() 将 发出 HTTP 响应代码
【讨论】:
UseHsts 将Strict-Transport-Security 标头添加到响应中,通知浏览器应用程序只能通过 HTTPS 访问。
在此声明之后,兼容的浏览器应自动将应用程序的任何 http 请求转换为 HTTPS 请求。
UseHttpsRedirection 会在收到 HTTP URL 时自动重定向到 HTTPS URL,从而强制建立安全连接。
一旦建立第一个 HTTPS 安全连接,strict-security header 就会阻止将来可能用于执行中间人攻击的重定向。
【讨论】: