我已经阅读了一些博客(很抱歉没有提及参考资料,但我再也找不到),如果您将用户从一个用户重定向,您将失去保护您网站的所有工作https页面到http页面。
那么,在下列情况下,有人可以向我解释一下我是对还是错:
在登录页面上使用https然后将其重定向到带有http的管理页面是正确的做法,还是会产生会话修复劫持,窃取会话等安全问题?
< / LI>或者我必须将管理页面也保留在https中吗?
问题的另一方面是:https是否允许缓存静态文件?
我在这里读过其他文章,但我仍然感到困惑,因为有人说'是',有些人说'不';也有人说它取决于浏览器。
答案 0 :(得分:5)
在您的实例中(仅使用HTTPS保护login
页面),登录详细信息将受到保护(例如用户名/密码),您的用户将容易受到会话劫持。
是否使用HTTP / HTTPS或完整HTTPS的混合取决于您的情况。例如,亚马逊将使用HTTPS进行登录,但您将使用HTTP浏览该网站,但只要您进入敏感区域(订单详细信息屏幕,更改帐户/密码详细信息等),它就会切换到HTTPS并询问你要重新认证。 从HTTP切换到HTTPS后重新验证用户是停止会话劫持的关键因为您正在有效地发布新的会话令牌。因此,如果用户窃取会话令牌,他们仍然不会拥有您的用户名/密码,无法访问您的帐户部分。
如果管理区域特别敏感,那么只需要整个HTTPS。谷歌发现使用完整HTTPS的开销在CPU上的开销在1-5%之间,基本上几乎没有。
至于在HTTPS上缓存静态文件我不确定,但是这篇SO帖子暗示它会正常缓存Will web browsers cache content over https
答案 1 :(得分:1)
所有内容都必须与https一起使用。如果你切换到http,每个人都可以看到发送的内容,这意味着你提到的那些安全问题将会出现。
原因是您必须识别您的客户端才能在您的管理网站中分配访问权限。这样做的一种可能性是发回一个令牌(一些哈希或其他)。根据令牌,您知道它是否是经过身份验证的客户端。但其他人确实看到了这个令牌=&gt;安全问题。
当然,您可以使用之前的https会话来交换私钥。并以某种方式使用它来加密你的http东西。但这是一个坏主意,因为https做得更方便..