【问题标题】:What's the point of adding UseHsts() in Start.cs在 Start.cs 中添加 UseHsts() 有什么意义
【发布时间】:2019-05-28 13:00:09
【问题描述】:

根据the docs,在配置中添加UseHsts()会激活STS相关标头的中间件。

我一直不太明白它的意义。这是否意味着只是为应用程序执行的每个请求添加一个标头?如果我不使用该标头会出现什么问题?

另外,我注意到当我尝试查找 Core 2.2(上面的链接)时,我被重定向到 Core 2.1,并指出 UseHsts() 不存在于以前的版本。这是否意味着它已经过时或正在使用隐藏魔法的默认值?

【问题讨论】:

  • HSTS 标头可防止浏览器以不安全的方式再次从该站点请求任何内容,是什么让您认为这没有用?此外,文档链接并没有说该信息已过时,只是他们尚未对 2.2 进行审查-它仍然非常相关。
  • 谢谢@DavidG .. 你让我复习了关于抄袭的 stackoverflow 政策...
  • @SoumenMukherjee 你是在暗示我的帖子是抄袭吗?没有关注...
  • @DavidG 啊哈,我认为这是通过 UseHttpsRedirection() 实现的。感谢您纠正我,也感谢您对链接/过时混淆的解释。您可能想将其作为回复发布,以便我接受它作为正确答案。
  • @SoumenMukherjee 我没有删除您的答案,版主删除了。另外,使用我的全名真的很奇怪,因为在 Stack Overflow 上没有提到它......

标签: c# asp.net-core .net-core asp.net-core-2.2


【解决方案1】:

HTTP 严格传输安全 (HSTS) 允许站点请求始终通过 HTTPS 与其联系。 Google Chrome、Firefox、Safari、Opera、Edge 和 IE 支持 HSTS

参考https://www.chromium.org/hsts

HTTP 严格传输安全 (HSTS) 是一种 Web 安全策略机制,有助于保护网站免受协议降级攻击和 cookie 劫持。它允许 Web 服务器声明 Web 浏览器(或其他符合要求的用户代理)应仅使用安全的 HTTPS 连接1 与它进行交互,而不是通过不安全的 HTTP 协议。 HSTS 是 IETF 标准跟踪协议,在RFC 6797中指定

【讨论】:

    【解决方案2】:

    如果您使用 TLS,则应启用此标志。注意:确保您没有在 localhost 上启用它(如果您没有在 localhost 上使用 TLS)。您将无法加载该网站。您需要使浏览器上的缓存无效。

    【讨论】:

    • 感谢您的回复。不过,您的回答实际上并没有解决所提出的问题。问题不是它的作用(问题中通过与文档的链接提供)。我在问我为什么需要它,如果我不需要它会出什么问题。原因是我认为 UserHttpRedirection() 已经在做这项工作了。但是,不在 localhost 上使用它的要点(通常通过模板设置依赖于开发环境的条件语句自动完成)是有益的。
    猜你喜欢
    • 2019-03-04
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2021-04-10
    • 2011-04-08
    相关资源
    最近更新 更多