首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该多久更新一次登录cookie?

我应该多久更新一次登录cookie?
EN

Stack Overflow用户
提问于 2018-04-17 13:40:23
回答 1查看 726关注 0票数 0

我还没有编写代码,因为我对cookies的使用还很陌生,并且试图把我的注意力集中在cookies编码的概念上。我将对我的登录系统中cookie和会话数据的使用进行梳理。

因为我的cookie中有一个时间限制,所以我认为需要定期更新它以保持cookie活动。

我的计划:

  1. 用户登录
  2. Cookie是为用户ID、随机令牌、随机串行密钥和IP地址设置的(我应该包括IP吗?)
  3. Cookie数据存储在数据库中,用于检索cookie以验证信息。

我将cookie设置为有效期为1个月。

应多久更新一次cookie数据,以及建议何时更新?

  • 每次服务器检查时,我是否应该更新以查看用户是否已登录,还是应该是稀疏的?应该只在没有找到会话并检查cookie有效性的情况下更新它吗?

我是新手,所以在我开始编写这段代码之前,任何信息都是有帮助的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 13:46:54

首先,我建议一个用php开发任何东西的框架,并且我不会试图用cookie之类的东西来重新发明轮子,当框架已经有了处理它们的代码时--即Laravel,Codeigniter (按任何顺序)。

设置一个月的cookie应该是可选的--即让用户选择这是否是一次性登录,否则他们的帐户可能会有风险,比如他们使用的是公共计算机。

最简单的形式是,每当登录用户根据会话刷新页面时更新数据库,而不是cookie。cookie是可编辑的客户端,因此不应依赖于此更新机制。对于“记住我”特性,可以更多地信任它,因为您可以将特定的用户ID分配给特定的令牌/ cookie数据,这意味着您可以检查查看是否完全匹配,如果不是,这意味着有人篡改了cookie。

我不建议同时更新数据库和更新cookie。设置cookie一次,在登录时,只需使用会话数据库即可。

不确定我会信任IP,记住你的IP现在可以通过外部软件被欺骗和改变,在一个简单的路由器重新启动的基础上,这可能会分配新的IP的重新连接。它可以是一个选项,但它不能成为身份验证的唯一基础。

评论中的例子,澄清:

假设我是一个ID 1的用户,他有手机、平板电脑和个人电脑。Cookie是默认的,从登录日期和时间起14天内有效,并且只插入一次,此后永远不会更新。

我今天登录时,在我所有的三个设备上都启用了“记住我”的功能-

手机

我们前往未来,我们现在的日期是28.04.2018。

11天过去了。

我启用了新设备的功能,例如我的合作伙伴手机。系统应该自动删除我的手机上的“存储”登录,即使14天没有过去(因为3是每个帐户可以记住的最大会话)。

我提供的例子只有当您想要创建一个“安全”网站时才有意义,它不仅控制活动的cookie,而且控制以前的cookie。显然,为了更安全起见,我甚至不会给3个记忆我会话,但只允许一个或两个。

如果限制不是我想要的,我只会给用户一个设置页面,让他们可以处理帐户上的其他活动会话,并给他们是否远程登录这些设备的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49879707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档