当用户登录时,我给他们一个名为auth的cookie,其值为GUID,在2周后到期。我将散列的GUID保存在数据库中,其中包含其userID的salt,然后在其到期时保存日期。当用户访问该站点时,我会检查cookie并将其登录,如果它匹配且未在数据库中过期。
在2周之前的某个时刻,我正在考虑更新行并增加过期日期。你经常这样做吗?每个页面请求似乎都经常出现,因为我将不断写入用户表。
此时我还在考虑更改auth cookie值。这样做的缺点是您无法在多台计算机/浏览器中进行身份验证。
我可以通过会话cookie完成此操作,因此每次会话只会发生一次重写。当用户访问页面时,我会检查名为authenticated的会话cookie。如果不存在,我会给他们一个新的auth cookie值和身份验证会话cookie,并在DB和auth cookie中暂停到期时间。如果是,我只是验证auth cookie。
似乎StackOverflow在注销并重新登录之前永远不会更改其身份验证cookie。这似乎使其更容易受到会话劫持的影响 - 如果您获得了身份验证cookie,则可以访问用户帐户,直到他们登录再次。由于他们的身份验证cookie不会过期或更改,因此您登录时不会注销用户。
答案 0 :(得分:0)
这取决于安全级别,我工作的地方通常必须有点高。
答案 1 :(得分:0)
Hrm我在这里找到了所有的答案。看起来我需要一个联接表>。<。
http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/