HSTS:当我没有子域时使用 includeSubdomains

HSTS: Using includeSubdomains when I have no subdomains

问题几乎就在标题本身。如果我有一个应用程序并使用 includeSubdomains 作为 HSTS header 但根本没有子域,这是好还是坏?

很好

  1. 如果您计划将您的站点提交到 Google's HSTS Preload list,即使您没有子域,也需要使用 includeSubdomains 指令。

  2. 如果您曾计划拥有一个子域,则意味着您需要从第一天起就将其设置为支持 HTTPS。我认为这是一件好事,因为它确实如此安全加分。

很好。

假设您有 https://example.com,这就是您使用的全部内容。 HSTS 确保您可以在此域上使用 HTTPS。这可以防止降级攻击。

如果没有 includeSubDomain,攻击者可以设置和使用伪造的子域,例如 http://www.example.comhttp://secure.example.comhttp://anyotherlegitimatssounsingsubdomain.example.com 并通过 http 转向它们,让人们以某种​​方式去那里而不是 https://example.com。当然,这需要访问权限来操纵受害者的 DNS,但这可以通过某些技术实现。

因为它是您主域的子域,所以它看起来是合法的(尽管没有 https)并且还可能泄漏或覆盖主域的 cookie。

仅仅因为您不使用子域并不意味着您的用户知道这一点。

对于应用程序,这可能不太重要,因为 URL 将在应用程序上设置并且更难更改,而且它们通常不使用 cookie,但仍被认为是使用 includeSubDomain 的最佳做法.