如果用户登录该站点并说“记住我”,我们将获得该用户的唯一标识符,使用 RijndaelManaged 对其进行加密,密钥大小为 256,并将其放入 httponly cookie 中,设置有效期为 120 天,每次对服务器的成功请求都会刷新过期时间。
可选地,我们根据用户代理和部分 ipv4 地址(最后两个八位字节)生成初始化向量。
显然没有内置真正的过期系统,从技术上讲,用户可以永远使用这个加密密钥(假设我们不更改服务器端密钥)..
我考虑到要允许此功能,我需要允许用户能够绕过登录并给我他们的唯一 ID(这是一个 guid),我认为单独的 guid 很难猜出一个真正的用户 guid,但是会使站点容易受到botnots生成guid的攻击(我不知道他们找到合法的guid有多现实)..所以这就是为什么在服务器知道加密密钥的地方进行加密,以及可选的iv特定于浏览器和 ip 部分。
我是否应该考虑另一种方法,让服务器发出与用户关联的票证,这些票证将有一个已知的到期日期,以便服务器控制到期?我真的应该关心到期吗?记住我到底还是记住我?
期待被谦卑;),干杯。