2012-08-07 76 views
8

我不确定是否应该在安全性或/ stackoverflow上发布此信息,因为我关心安全性和性能。正确的cookie管理

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

但我需要使用cookie来认证我的用户。有没有完整的一步一步的指导?

我做了什么:

  • 产生一个随机的和唯一的字符串。

  • 联营随机字符串,在我的缓存rndstring用户 - >用户

  • 创造一个安全,并签署饼干。 value = hash(rndstring + secret)| rndstring

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

  • 如果是得到用户。

我觉得我的方法有缺陷,因为我自己做了。

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

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

你可以推荐我哪些资源?

+2

+1对于“我认为我的方法有缺陷,因为我自己做了。” – 2012-08-07 08:37:03

回答

2

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

我个人不会建议开发自己的会话管理,实际上我会建议不要这样做。 “玩游戏框架”的会话管理已经被许多人审查过,而你的玩家却没有并且很容易发现你错过的漏洞。我会使用您选择的编程框架提供的内置会话管理。你看过该剧documentation?

在资源方面,你应该看看大卫鲁克安全发展原则 - herehere

如果您使用cookie改变了主意,您可以查看web keys,,这是一种将不可猜测的标记插入到URL中的方法。

在阅读Owasp时,您是否阅读过最新的Session Management cheatsheet?我认为你的许多问题都是在那里回答的。

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

+0

感谢一些链接对我来说是新的。我只是在做这个,因为我使用的是Play 2,并且没有关于这个话题的文档,虽然有一个例子,但它对我没有太大意义。我也应该说,我也使用内置的cookie。只需要我自己的认证。我也在这里问了一个关于play2 auth的问题http://stackoverflow.com/questions/11820273/java-play-2-authentication-does-not-make-sense但是幻灯片/ pdf似乎对我很有前途! – 2012-08-07 10:56:33

+0

非常感谢我尝试尽可能多地使用play2提供的功能。 – 2012-08-07 13:38:29

1

我建议你每次检查哈希和匹配时都会生成一个新的唯一字符串并更新你的cookie值。这将改善您的系统的安全性。由于饼干被盗的情况下黑客攻击的可能性降低。