正确的cookie管理



我不确定我是否应该在it安全或/stackoverflow上发布这篇文章,因为我担心安全性和性能。

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

但我需要用cookie来验证我的用户。是否有完整的分步指南?

我做了什么:

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

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

  • 创建一个安全且签名的cookie。value=hash(rndstring+secret)|rndstring

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

  • 如果是,获取用户。

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

另一个问题是,我从缓存中的数据库中保护用户对象。如果用户更新了他的配置文件,我也必须更新缓存。

我使用的是带有play2框架+mongoDB的java。

你能向我推荐什么资源?

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

我个人不建议开发自己的会话管理,事实上我建议不要这样做。"游戏框架"会话管理已经被许多人审查过,而你的会话管理还没有,而且很容易存在你错过的漏洞。我会使用您选择的编程框架提供的内置会话管理。你看过剧本的文件了吗?

在资源方面,您应该在这里和这里查看David Rook的安全开发原则。

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

在阅读Owasp时,你读过最新的会话管理备忘单吗?我认为你的很多问题都在那里得到了回答。

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

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

最新更新