“在这台电脑上记住我” - 它应该如何运作?

时间:2009-07-02 14:47:32

标签: security password-protection remember-me

查看Gmail的Cookie,很容易看到“记住我”Cookie中存储的内容。用户名/一次访问令牌。在用户名是秘密的情况下,它可以以不同的方式实现。但无论如何......事情的安全性不是很高:你偷了饼干,你就准备好了。

我的问题是在功能方面,但是你什么时候擦拭他们的访问权限?如果用户在另一台计算机上登录而不点击“记住我”,是否应该在所有计算机上使其访问权限无效?我问的是传统上如何实现它,以及它应该如何实现。

6 个答案:

答案 0 :(得分:20)

答案 1 :(得分:15)

我经常同时使用2台或3台机器,并在所有机器上“记住我”。如果其中一个断开其他会非常烦人的,所以我不推荐它。

传统上它会使用超时,cookie会在一段时间后(或用户退出时)过期。

这完全取决于您的安全模型。如果您正在编写一个内部公司应用程序,您只希望一个用户在一台计算机上,那么您可能希望拥有比gmail更严格的限制。

另外,请记住拒绝服务的可能性 - 如果一台计算机上的操作可能会迫使另一台计算机无法使用,则可能会阻止合法用户在某些情况下取回控制权。

答案 2 :(得分:5)

从其他计算机登录不应使与其他计算机上的Cookie关联的登录失效。但是,如果用户注销或“不是你?在这里登录”,这应该清除用户正在使用的cookie。

顺便说一下,通过坚持使用https并使其不用于编写脚本来窃取cookie可能会很困难。

通过在Cookie的输出中添加“; HttpOnly”,这将使cookie无法用于javascript,例如

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.0
Set-Cookie: ASP.NET_SessionId=ig2fac55; path=/; HttpOnly
X-AspNet-Version: 2.0.50727
Set-Cookie: user=t=bfabf0b1c1133a822; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2008 10:51:08 GMT
Content-Length: 2838

您可以阅读有关此内容的更多信息

答案 3 :(得分:3)

记住我的cookie也应该识别机器。它应该与机器有关,因为有些地方你想要被记住,有些地方你不想要(家庭与工作)。

到期日期通常设置为合理的期间(两周)或用户明确从计算机注销后

答案 4 :(得分:0)

我要做的是将每个会话链接到一个IP地址。如果会话令牌是从不同的IP发送的,请拒绝它。

答案 5 :(得分:0)

访问令牌应该是IP特定的,以便它们不能轻易地跨机器传输。

它们也应该以允许用户查看他们拥有活动令牌的机器的方式实施。

选择在另一台计算机上创建新令牌后选择终止令牌的网站 - 选择其用户不会在多台计算机上访问其服务 - 或者如果他们这样做 - 他们的使用证明他们再次登录是合理的。

您使用的政策实际上取决于您持有的数据和用户的需求。