8

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

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

但我需要使用 cookie 对我的用户进行身份验证。有完整的分步指南吗?

我做了什么:

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

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

  • 创建一个安全且签名的 cookie。值=哈希(rndstring+秘密)|rndstring

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

  • 如果是,请获取用户。

我认为我的方法有缺陷,因为我是自己做的。

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

我正在将 java 与 play2 框架 + mongoDB 一起使用。

有什么资源可以推荐给我?

4

2 回答 2

2

我认为这是Security StackExchange的一个问题,我注意到您在那里提出了类似的问题,最近DW 给出了很好的回答。security.stackexchange.com 论坛上有很多人会批评您的方法。

我个人不建议开发自己的会话管理,事实上我不建议这样做。“播放框架”会话管理已被许多人审查过,而您的则没有并且很容易出现您忽略的漏洞。我将使用您选择的编程框架提供的内置会话管理。你读过播放文档吗?

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

如果您使用 cookie 改变主意,您可以查看网络密钥,这是一种将不可猜测的令牌插入 URL 的方法。

When reading Owasp, did you read the latest Session Management cheatsheet? I think that a lot of your questions are answered there.

One final resource is the SANS Top 25 Software Errors.

于 2012-08-07T09:52:46.363 回答
1

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

于 2012-08-07T09:50:11.167 回答