使用自定义 userId 与 Mongo Object_Id

Using custom userId vs Mongo Object_Id

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

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

当时我认为通过 URL 路由公开这些内容时可能会出现安全问题。然而,我无法真正弄清楚与公开自定义 ID 相比,它的安全性如何。黑客可以盗用我的数据库吗?

谁能阐明这方面的最佳做法?

谢谢!

ObjectId 在任何方面都不比 UUID 安全。

他们确实带有时间戳部分,所以如果你公开对象id,客户端就可以知道这个id的生成时间。但是:

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