查看 Gmail 的 cookie,很容易看出“记住我”cookie 中存储的内容。用户名/一次性访问令牌。在用户名是秘密的情况下,它也可以以不同的方式实现。但是无所谓...安全性不是很高的东西:你偷了饼干,然后就可以出发了。

然而,我的问题是在功能方面:你什么时候擦除他们的访问令牌?如果用户登录 没有 在另一台计算机上单击“记住我”,是否会使他们的访问令牌失效 所有机器?我问的是传统上是如何实现的,以及应该如何实现。

有帮助吗?

解决方案

我经常同时使用2或3台机器,并且对所有的人都“记住我”。如果他们中的一个断开的人,这将是很讨厌,所以我不会推荐它。

传统它将使用超时,该cookie的一定时间长度后期满(或者当用户退出)。

这一切都取决于你的安全模型。如果你正在写在这里你只指望一个用户将一台计算机上的公司内部应用程序,那么你可能希望有比Gmail的更严格的限制。

此外,牢记拒绝服务的可能性。 - 如果一台机器上的动作可以迫使另一台机器上是不可用的,这可能是使用以防止合法用户从在某些情况下采取控制回

其他提示

文章 持久登录最佳实践改进的持久登录最佳实践 是关于如何实现此类功能的很好的参考。

另请参阅这些 StackOverflow 问题

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

顺便说一句,通过坚持使用 https 并使其不用于脚本,可以使窃取 cookie 变得困难。

通过增加 ”;HttpOnly”到你的 cookie 的输出,这将使 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

你可以阅读更多相关内容

在记得我的cookie应确定机器也是如此。因为有要记住的地方,在那里你不(VS在家工作),其他地方应该进行相关的机器。

失效日期通常被设置为一个合理的时间段(2周)或在用户已经明确地从机器注销,

我会做的是每个会话链接到一个IP地址。如果会话令牌是从一个不同的IP发送比你有针对,拒绝它。

接入令牌应该是IP特定使得它们不能容易地跨机器传送。

他们应该还的方式,让用户看到什么机器,他们对活动的令牌来实现。

这是选择以杀死一旦一个新的另一台计算机上创建一个令牌网站 - 做出选择,他们的用户将无法访问在多台计算机的服务 - 或者,如果他们这样做 - 他们的使用情况证明应该让他们重新登录。

您使用真正的政策取决于你持有的数据和用户的需求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top