当用户登录到我的网站时,它会创建 2 个 cookie,一个带有会话 ID(与后端的用户 ID 相关),另一个是持续 3 个月的记住我的 cookie。
记住我 cookie 的构造如下:
userid:timeout:hash
其中哈希是 HMAC SHA256 哈希,userid:timeout
以防止篡改。
如果会话 ID 不存在(用户关闭浏览器并再次打开,cookie 消失了,或者会话 ID 在 memcached 中不存在),它会查看记忆 cookie 并重新生成一个新的会话 cookie,前提是它有没有超时并且哈希是正确的。
但是,我根本看不到拥有会话 cookie 的意义,因为会话 ID 只是指向后端中的用户 ID。我可以使用记住我的 cookie 来检索当前用户。
所以我正在考虑完全取消会话cookie,并且有兴趣听到一些关于此的想法。这种方法听起来相对安全吗?我可以让它变得更好吗?
提前致谢!