当前位置:  开发笔记 > 运维 > 正文

这是实现"记住我"功能的合理方式吗?

如何解决《这是实现"记住我"功能的合理方式吗?》经验,为你挑选了1个好方法。

如果用户登录该网站,并说"记住我",我们会获得该用户的唯一标识符,使用密钥大小为256的RijndaelManaged加密,并将其放入一个设置过期的httponly cookie中.120天,每次成功请求刷新到服务器的到期时间.

可选地,我们基于用户代理和ipv4地址的一部分(最后两个八位字节)生成初始化向量.

显然,没有真正的到期系统,用户可以在技术上永远使用这个加密密钥(假设我们不更改服务器端密钥).

我考虑过这样一个事实,即允许这个功能,我需要允许用户绕过登录并给我他们唯一的ID(这是一个guid),我认为单独的guid很难猜到一个真正的用户guid,但是会让网站开放受到生成guid的botnots的攻击(我不知道他们找到一个合法的guid是多么现实)..所以这就是为什么服务器知道加密密钥的加密,以及可选的iv特定于浏览器和ip部分.

我是否应该考虑服务器发出与用户关联的票证的不同方法,并且这些票证将具有已知的到期日期,以便服务器保持对期满的控制权?我真的应该关心到期吗?还记得我记得我吗?

期待被贬低;),干杯.



1> Sander Versl..:

非常相似的问题.

您的问题的解决方案在此博客文章中

"持久登录Cookie最佳实践"描述了为网站实现熟悉的"记住我"选项的相对安全的方法.在本文中,我提出了一种改进,它保留了该方法的所有好处,但也可以检测持久登录cookie何时被攻击者窃取和使用.

正如Jacco在评论中所说:有关安全认证的深入信息,请阅读网站认证的权威指南.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有