最近有人告诉我,在 URL 中使用 mongodb _id 字段是不安全的。我想知道这是不是真的。
我的网站仅限于注册用户,每个用户都有他们的 URL 端点,其中包含来自 mongo 的 id。这是典型的 mongodb _id 字段 - 一个 SHA1。 AFAIK,id 是不可猜测的,即使有人点击了别人的 id,我的应用程序中基于 session 的身份验证也不允许访问。除了应用程序本身之外,没有人可以直接访问数据库。
我很想知道我是否缺少任何东西。
编辑:澄清的问题。 (mongodb ObjectID 不是 SHA1)
最佳答案
MongoDB 中的
_id
字段(默认情况下)为 ObjectID 类型.它不是 SHA1。
它的字符串表示形式(如 4ed7cbfd1d96406ca0000015
肯定是 URL 安全的。我在任何地方都使用它。
我的意思是,在您放置常规 int 标识符(/products/3
或 /users/42
或其他任何内容)的任何地方公开它都是安全的。
在您的网站上,您应该检查用户是否已登录以及他是否有权访问给定的 URL。您不应该盲目地允许用户访问其中包含 ObjectID 的 URL,仅仅因为它们 (id) 不容易猜到(虽然它们比 SHA1 更容易)
关于security - 在 URL 中使用 ID(来自 mongo 的 ObjectId)是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561485/