java - 正确的 cookie 管理

标签 java authentication mongodb cookies

我不确定是否应该在安全性或/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 的安全开发原则 - herehere .

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

在阅读 Owasp 时,您是否阅读了最新的 Session Management cheatsheet ?我想你的很多问题都在那里得到了解答。

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

关于java - 正确的 cookie 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11842078/

相关文章:

Java:将二叉搜索树转换为字符串的方法

java - 在选项卡中有表格的 JPanel 中出错

node.js - NodeJS 和 Express——如何模拟 token 认证中间件进行测试?

node.js - 为什么 gridfs get 不能仅按文件名处理文件 ID (ObjectId)

javascript - mongodb 高效排序和正则表达式查询

java - 同步成本

java - 尝试将项目添加到对话框,但它们没有显示

javascript - 使用 Web 组件在登录页面中保存凭据

用于订阅管理员的 Azure MFA

javascript - 无法使用 Meteor-Blaze 访问 Mongo 数据库