HTTPS 启动速度很慢,尤其是在低带宽和高延迟的连接上,或者在低规格的机器上。不幸的是,这似乎是所有主要网站使用的保护登录的标准方法。
但是我们通常访问的很多网站只是为了阅读信息。如果我们只是偶尔想要进行写入/更新,那么等待登录是不必要的时间开销。
对我来说最令人沮丧的例子是:
- GitHub。我经常想访问一个 github 页面,只是为了阅读项目的概述或查看文件。但我必须等待 SSL 握手,即使我不想做任何与我的个人帐户相关的事情。Github 总是将我的浏览器从 HTTP 重定向到 HTTPS。为什么?!
我了解安全连接对于验证用户帐户非常重要。但是,当这影响了简单查看公共页面的用户体验时,我们应该尝试找出替代方案(并鼓励主要网站采用它)。
这是一个可能的解决方法(1):
- 允许用户与我们的网站建立 HTTP 连接,这样我们就可以快速呈现页面而无需 SSL 握手。
- 允许在页面加载后进行登录。也许通过HTTPS的Ajax请求可以验证用户身份,并为页面提供相关更新。(这从根本上是不安全的吗?编辑:是的,它并不完全安全,请参见下面的答案。)
另一种选择可能是(2):
- 代替通过 HTTPS 的长期 cookie,使用长期一次性密钥 cookie 的组合用于持久登录,以及通过 HTTP 用于非线性浏览的短期 cookie。经常更换它们。(这可能不如 HTTPS 安全,但比 HTTP 上的正常长期 cookie 使用更安全。)
这些解决方案看起来是否足够安全,或者您能提出更好的建议吗?
(我在印度尼西亚附近的某个地方写这篇文章可能不是巧合,那里离美国网络很远!)