Security 在URL中使用ID(来自mongo的ObjectID)安全吗?

Security 在URL中使用ID(来自mongo的ObjectID)安全吗?,security,url,mongodb,Security,Url,Mongodb,最近有人告诉我,在URL中使用mongodb_id字段是不安全的。我想知道这是不是真的 我的网站仅限于注册用户,每个用户都有自己的URL端点,其中包含来自mongo的id。这是典型的mongodb_id字段-a SHA1。好吧,这个id是不可用的,即使有人点击了其他人的id,我的应用程序中基于会话的身份验证也不允许访问。除了应用程序本身,没有人可以直接访问数据库 我很想知道我是否遗漏了什么 编辑:澄清问题。(mongodb对象不是SHA1)\u mongodb中的id字段(默认情况下)为类型。它

最近有人告诉我,在URL中使用mongodb_id字段是不安全的。我想知道这是不是真的

我的网站仅限于注册用户,每个用户都有自己的URL端点,其中包含来自mongo的id。这是典型的mongodb_id字段-a SHA1。好吧,这个id是不可用的,即使有人点击了其他人的id,我的应用程序中基于会话的身份验证也不允许访问。除了应用程序本身,没有人可以直接访问数据库

我很想知道我是否遗漏了什么


编辑:澄清问题。(mongodb对象不是SHA1)

\u mongodb中的id
字段(默认情况下)为类型。它不是一个SHA1

它的字符串表示法(比如
4ed7cbfd1d96406ca0000015
肯定是URL安全的。我在任何地方都使用它

我的意思是,可以安全地将它暴露在任何放置常规int标识符的地方(
/products/3
/users/42
或其他)


在你的网站上,你应该检查用户是否登录,以及他是否有权访问给定的URL。你不应该盲目地允许用户访问带有objectID的URL,仅仅因为它们(id)不容易猜测(尽管它们比SHA1容易)

使用看似随机的字符串作为id(或创建guid)是个不错的主意在URL而不是数字中。如果你有公共API,user/1001,user/20032,它只是乞求黑客猜测下一个数字并获取随机用户信息。

这就是我的想法。另外,稍微修正了我的问题,使我在sha1/objectid差异方面看起来稍微不那么愚蠢。非常感谢。相关: