不可用的持久登录cookie

时间:2011-08-23 07:17:32

标签: cookies login autologin

阅读http://jaspan.com/improved_persistent_login_cookie_best_practice这样的文章后,我想知道是否有一个合理的方法来实现这一目标。

所以,我想要的是让一个骗子偷一个饼干,并在他自己的电脑中使用它。使用安全cookie是不可能的。我一直在考虑的是将有关用户浏览器的一些信息散列到cookie中,这将在尝试自动登录后进行验证。

所以,我现在面临的问题是要散列的信息。浏览器名称应该没问题,但版本号会使每次浏览器升级时的自动登录失效。功能嗅探也是如此。我一直在考虑的是浏览浏览器名称和用户的语言环境,以获得合理的某种方式来抵制cookie被盗。

我是否在正确的轨道上?是否有这样做的事实上的方式?

系统不需要100%坚不可摧,只是合理的。

PS:您不必担心cookie中的其他数据。我只是好奇“不要偷这个饼干” - 部分。

编辑1:哈希客户端信息的弱点,正如我在其他地方得到回答的那样,攻击者知道使用了客户端信息就足够了,并将客户端信息复制为cookie被偷了当然,为攻击者做了一个额外的步骤,但没有我想象的那么大......还有其他想法吗?

1 个答案:

答案 0 :(得分:3)

首先,没有任何万无一失的方法可以解决这个问题,但我会尽量给你一个更合适的答案。但是,我会从你可能应该考虑的其他一些事情开始。

首先要了解如何避免用户的cookie被泄露。可能最常见的cookie-jacking方法是通过侦听不安全的HTTP流量,使用XSS攻击或利用错误定义的cookie路径。

您提到安全Cookie在您的案例中是不可能的,但我想要注意这一点,以供其他读者进一步参考。确保您的网站始终使用HTTPS,这样即使用户使用未加密的无线互联网访问,您也可以确保网站流量安全。

确保您的网站定义了Cookie的正确域名和路径,换句话说,请确保不会将Cookie发送到域名中不应访问Cookie的部分。

在Cookie中启用HttpOnly。这意味着您的cookie仅在HTTP(S)请求中发送,并且无法读取,例如,使用JavaScript。这将通过XSS降低用户cookie被盗的可能性。

那就是说,要回答你的实际问题,可能通过其他方式识别用户的一种常见方法是使用浏览器指纹。浏览器指纹是使用对用户环境的唯一信息构建的散列,例如,指纹可以包括浏览器插件细节,时区,屏幕大小,系统字体和用户代理。但是请注意,如果这些更改中的任何一个,指纹也是如此,因此,在您的情况下,使cookie无效 - 从安全角度来看,我不一定认为这是一件坏事。