我有一个网站需要用户登录。由于无法通过 https 访问所有内容,因此我们决定仅将 https 用于登录页面。
页面上提交的所有其他数据都不是敏感数据,不需要加密。
这种方法会破坏用户的登录凭据吗?将所有其他页面放在 http 上 - 攻击者能否从用户 session cookie 中获取凭据?
我看到很多网站都采用这种方法,所以我认为它可能是安全的 - 但我想了解其背后的技术细节。
最佳答案
在登录页面上仅使用https是不安全的:
- 这意味着您不使用 HSTS,这是针对 SSLSrip 的唯一保护措施
- 这意味着攻击者可以在您的 http 页面上用其他东西替换您到登录页面的链接(比如向他的服务器提交凭据的 popin)
- 一旦用户连接上,cookie必须具有安全属性(没有安全属性很容易窃取 cookie。参见 firesheep)
唯一安全的方法是在您域的所有页面中使用 https,使用 HSTS 并将所有 http 请求重定向到 https。
Can this approach compromise user's login credentials? Having all other pages on http - can an attacker get access to the credentials from the user session cookies?
攻击者可以窃取 session cookie,因此他可能会造成很多伤害(取决于您的安全措施、更改密码、电子邮件、提取个人数据...)并且他可以模拟断开连接并再次请求http 网页上的密码。
I could see many sites having this approach so I think it might be safe
不,不是。他们的网站可能太大而无法在所有地方启用 https,因此他们尽其所能来限制损失。 (或者他们只是懒惰)
关于security - 仅用于登录页面的 HTTPS - 是否推荐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762355/