【问题标题】:Secure first HTTP request保护第一个 HTTP 请求
【发布时间】:2015-09-15 23:14:26
【问题描述】:

我正在构建网站,想知道如果第一个请求是通过 HTTP 发出的,我如何确保它是安全的。 HSTS 做到了这一点,但只是部分做到了。

我认为不开放 HTTP 端口可以解决这个问题。但这是标准吗?我的网站是 B to B,所以 SEO 不是问题。用户直接访问我的地址,但假设可以使用 HTTP。有什么想法吗?

【问题讨论】:

  • 您可以在端口 80 上打开另一个网站,该网站仅重定向到该网站的安全版本。
  • @Dai 这样安全吗?

标签: security http https hsts


【解决方案1】:

简答:

它将保护您的访问者即使是第一次访问,这要归功于预加载:即使在第一次联系之前,浏览器也会知道您的域必须仅使用 https 联系(它将在他们的源代码中,见https://github.com/ssllabs/research/wiki/Preload-Lists)。

(当然,保留您的 301 重定向 http=>https)

为什么关闭 80 端口不是一个好主意?让我们看看这两个选项:

HSTS 和 80 端口关闭的选项:

如果发生攻击:

HSTS 和 80 端口开放的选项:

如果发生攻击:

如您所见,打开端口 80 以响应 301 重定向到 https 可以提高一点安全性(关闭它不会提高安全性,并且可能会使您的访问者感到困惑)

【讨论】:

  • 我认为如果我关闭80端口,请求体将不会被发送。如此安全。如果我使用重定向,第一次访问的第一个请求将被暴露。
  • 我已经详细说明了我的答案。如您所见,如果您关闭端口 80,则用户在第一次 http 访问时仍然容易受到攻击(因为他的浏览器在他的 HSTS 预加载列表中没有您的网站),但最糟糕的是,下一次访问将很容易受到攻击。使用 301 重定向,如果至少一个请求没有被黑客入侵,那么用户将是安全的,并且被黑客入侵了 ;)
【解决方案2】:

我建议使用将 http 更改为 https 的防火墙重定向规则。

【讨论】:

  • 如果您的用户输入http://YourSite/login.aspx,他将立即被重定向到https://YourSite/login.aspx。从那时起,如果他(她)输入凭据,它们将通过 SSL 发送。
  • 我关心第一个请求
  • 我们在这里谈论的是网络服务吗?在这种情况下,是的,关闭端口 80 是可以的,而且一点也不罕见。如果您在谈论一个网站,我不明白您认为自己在保护什么。您的用户是否确实在地址栏中输入了敏感信息,而您担心他们不会记得使用 https?如果是这种情况,我会重新审视该设计,因为它包含其他安全问题。
猜你喜欢
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 2014-05-02
  • 2013-04-06
  • 1970-01-01
  • 2016-12-27
  • 2011-03-05
  • 1970-01-01
相关资源
最近更新 更多