使用自定义用户 ID 与 Mongodb ObjectId

Posted

技术标签:

【中文标题】使用自定义用户 ID 与 Mongodb ObjectId【英文标题】:Using custom userId vs Mongo Object_Id 【发布时间】:2018-03-17 11:45:44 【问题描述】:

(一年前刚开始编码,我仍然对 *** 上的人有多酷感到敬畏 :))

无论如何,在我之前的工作中,我们在后端使用自定义 UUID 作为 userId,而不是自动生成的 mongo 对象 ID。

当时我认为它与通过 URL 路由公开这些内容时可能存在的安全问题有关。然而,我真的不知道这比暴露自定义 ID 更不安全。黑客可以假设我的数据库吗?

有人能说明这方面的最佳做法吗?

谢谢!

【问题讨论】:

【参考方案1】:

ObjectId 的安全性丝毫不低于 UUID。

它们确实带有时间戳部分,因此如果您公开对象 id,客户端可以知道此 id 的生成时间。但是:

    这假定您使用默认生成方案。一些实现会生成完全随机的对象 ID(因此时间戳值是假的) 我想不出恶意客户端如何将它用于任何事情。

【讨论】:

感谢塞尔吉奥!我将研究不同的 Schema Obj_id 生成并使用这些!!

以上是关于使用自定义用户 ID 与 Mongodb ObjectId的主要内容,如果未能解决你的问题,请参考以下文章

如何在mongodb中维护用户可自定义的实体顺序?

Mongoose:引用自定义字段名称

LoopBack4 MongoDB 自动增量自定义 ID

为啥MongoDB在插入自定义id值时将_id加一

如何使用 MongoDB 中的自定义字段对分页进行索引和排序,例如:名称而不是 id

Spring Data MongoDB - 使用自定义 Id 字段时注释 @CreatedDate 不起作用