纠正cookie管理

时间:2012-08-07 08:34:40

标签: java authentication mongodb cookies

我不确定是否应该在安全性或/ stackoverflow上发布此内容,因为我担心安全性和性能。

我正在努力寻找可靠的Cookie管理来源。我读过OWASP,所以我大致知道什么是危险的。

但我需要使用Cookie验证我的用户身份。是否有完整的分步指南?

我做了什么:

  • 生成随机且唯一的字符串。

  • 将随机字符串与我的缓存rndstring中的用户相关联 - >用户

  • 创建安全且已签名的Cookie。 value = hash(rndstring + secret)| rndstring

  • 如果用户回来,我会检查哈希值是否匹配,以及rndstring是否在我的缓存中。

  • 如果是,请获取用户。

我认为我的方法存在缺陷,因为我自己做了。

另一个问题是我在缓存中从db中保护用户对象。如果用户更新了他的个人资料,我还必须更新缓存。

我正在使用带有play2 framework + mongoDB的java。

你能推荐我什么资源?

2 个答案:

答案 0 :(得分:2)

我认为这是Security StackExchange的问题,我注意到你在那里提出了类似的问题,最近有excellent answer from DW。 security.stackexchange.com论坛上有很多人会批评你的方法论。

我个人不建议开发自己的会话管理,事实上我建议反对它。许多人都对“游戏框架”会话管理进行了审核,而你的却没有并且很容易出现你错过的漏洞。我会使用您选择的编程框架提供的内置会话管理。您是否阅读过游戏documentation?

在资源方面,您应该查看David Rook的安全发展原则 - herehere

如果您使用Cookie改变主意,可以查看web keys,,这是一种将不可授权的令牌插入网址的方法。

阅读Owasp时,您是否阅读了最新的Session Management cheatsheet?我认为你的很多问题都得到了回答。

最后一个资源是SANS Top 25 Software Errors

答案 1 :(得分:1)

我建议您每次检查哈希值并匹配时,还会生成一个新的唯一字符串并更新您的cookie值。这将提高系统的安全性。因为在盗窃cookie的情况下黑客攻击的可能性会降低。