最近有人告诉我,在URL中使用mongodb_id字段是不安全的.我想知道这是不是真的.
我的网站仅限于注册用户,每个用户都有自己的URL端点,其中包含来自mongo的id.这是典型的mongodb_id字段——a SHA1.好吧,这个id是不可用的,即使有人点击了其他人的id,我的应用程序中基于会话的身份验证也不允许访问.除了应用程序本身,没有人可以直接访问数据库.
我很想知道我是否遗漏了什么.
编辑:澄清问题.(mongodb对象不是Sha1)
最近有人告诉我,在URL中使用mongodb_id字段是不安全的.我想知道这是不是真的.
我的网站仅限于注册用户,每个用户都有自己的URL端点,其中包含来自mongo的id.这是典型的mongodb_id字段——a SHA1.好吧,这个id是不可用的,即使有人点击了其他人的id,我的应用程序中基于会话的身份验证也不允许访问.除了应用程序本身,没有人可以直接访问数据库.
我很想知道我是否遗漏了什么.
编辑:澄清问题.(mongodb对象不是Sha1)
MongoDB中的_id
字段(默认情况下)为ObjectID类型.它是not a SHA1.
它的字符串表示(比如4ed7cbfd1d96406ca0000015
)当然是URL安全的.我在任何地方都使用它.
我的意思是,把它expose 在任何地方都是安全的,在那里你可以放置一个常规的int标识符(/products/3
或/users/42
或其他什么).
在你的网站上,你应该判断用户是否已登录,以及他是否有权访问给定的URL.你不应该盲目地允许用户访问带有objectid的url,仅仅因为它们(id)不容易猜测(尽管它们比SHA1容易)