如何防止“记住我”cookie发送垃圾邮件?

时间:2018-01-29 15:17:13

标签: php mysql cookies

我为我的网站制作了一个记住我的cookie系统(纯php)。它的工作原理如下:

  1. 用户登录
  2. 生成随机令牌(用户ID +随机sha256哈希)并将其保存在Cookie中一个月
  3. 令牌也存储在数据库(mysql)中,连同其失效日期(1个月)
  4. 当用户访问我的网站并拥有cookie时,我将其值与数据库中的值进行比较。如果它们匹配,我会为此cookie生成一个新令牌以防止coookie-stealing
  5. 这允许用户同时从许多设备登录,但我遇到了(可能的)问题。 当使用例如隐身模式时,每次您查看网站时它都会要求您再次登录(因为显然没有任何cookie)。这样,我可以登录数百次并生成数百个永远不会再次使用的令牌,但会占用我的数据库中的空间,并且在它们到期之前不会被删除。我怎么能保护自己免受这种伤害?

1 个答案:

答案 0 :(得分:0)

这是cookie的常见问题,因此为此目的设置更短的到期日期,您还可以将cookie值设置为包含任何会话信息或密钥信息的加密消息,使用可以解决所有问题的密钥< / p>