HTTPS启动缓慢,特别是在低带宽和高延迟连接或低规格机器上。不幸的是,它似乎是保护所有主要网站使用的登录的标准方法。
但是很多网站我们通常只是访问阅读信息。如果我们偶尔只想进行写入/更新,那么等待登录是不必要的时间开销。
对我来说最令人沮丧的例子是:
我了解安全连接对于验证用户帐户很重要。但是,如果这会影响用户查看公共页面的体验,我们应该尝试制定替代方案(并鼓励主要网站采用它)。
这是一个可能的解决方法(1):
另一种选择可能是(2):
这些解决方案是否足够安全,或者您可以提出更好的建议吗?
(我从印尼附近的某个地方写这篇文章可能不是巧合,离美国网很远!)
答案 0 :(得分:0)
这是我能想到的一种替代方案,虽然略有限制:
实际上,我们可能会提供相反的内容:默认为现有的自动重定向到HTTPS的流行行为,但为那些希望避免SSL握手的用户提供选择退出“不要总是切换到HTTPS进行登录”
但这种方法仍有问题:
不幸的是,cookie没有命名为协议(http / https)。我们可以将cookie标记为“安全”以防止它们通过HTTP发送,但是如果发生HTTP请求,某些浏览器将完全擦除它们。保持cookie分离的一种方法是使用不同的域进行未经身份验证和身份验证的站点访问。但后来我们发现自己违反了REST,两个不同的地址指向基本相同的资源......
这可以解决吗?
答案 1 :(得分:0)
问题中的解决方法#1无法为第一页提供完全的安全性,因为中间人攻击可能会在登录之前在页面上注入或修改脚本。
因此,我们不应在HTTP页面上要求输入用户名/密码。但是,HTTPS Ajax操作可能能够通知用户已经/可以恢复持久登录会话。 (然后,脚本可以用HTTPS链接替换页面上的所有HTTP链接。)
但即使成功,我们仍然不应完全信任任何用户点击或< form> POST从第一页发起。 (当然,查看其他页面的请求很好,但拒绝更新设置,密码和与财务相关的操作可能是明智之举。)
这种技术至少可以成为在后台执行HTTPS设置的一种方法,而无需让用户等待初始内容。 (StackOverflow使用类似这样的程序。)希望浏览器缓存HTTPS连接,或at least the keys,避免后续请求的任何延迟。