我不确定是否应该在安全性或/stackoverflow 上发布此内容,因为我担心安全性和性能。
我正在努力寻找可靠的 cookie 管理来源。我读过 OWASP,所以我大致知道什么是危险的。
但我需要使用 cookie 对我的用户进行身份验证。有完整的分步指南吗?
我做了什么:
生成一个随机且唯一的字符串。
将随机字符串与我的缓存 rndstring 中的用户关联 -> 用户
创建一个安全且签名的 cookie。 value= hash(rndstring+secret)|rndstring
如果用户回来,我检查哈希是否匹配,以及 rndstring 是否在我的缓存中。
如果是,获取用户。
我认为我的方法有缺陷,因为我是自己做的。
另一个问题是我从缓存中的数据库中保护了用户对象。如果用户更新他的个人资料,我也必须更新缓存。
我正在使用 java 和 play2 框架 + mongoDB。
你可以推荐我什么资源?
最佳答案
我认为这是 Security StackExchange 的问题我注意到你在那里问过类似的问题,最近用 excellent answer from DW . security.stackexchange.com 论坛上有很多人会批评您的方法。
我个人不建议开发自己的 session 管理,事实上我不建议这样做。 “播放框架” session 管理已被许多人审查过,而您的则没有并且很容易出现您忽略的漏洞。我将使用您选择的编程框架提供的内置 session 管理。剧本看了吗documentation?
在资源方面,您应该查看 David Rook 的安全开发原则 - here和 here .
如果您改变主意使用 cookie,您可以查看 web keys, ,这是一种将不可猜测的 token 插入 URL 的方法。
在阅读 Owasp 时,您是否阅读了最新的 Session Management cheatsheet ?我想你的很多问题都在那里得到了解答。
最后一个资源是 SANS Top 25 Software Errors .
关于java - 正确的 cookie 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11842078/