我很喜欢MongoDB自动生成的ID.它们真的很有用.

然而,公开使用它们是否省钱?

假设有一个posts集合,/posts页面接受id参数(类似于/posts/4d901acd8df94c1fe600009b)并显示有关它的信息.

这样,用户/黑客将知道文档的真实对象id.还好还是不安全?

谢谢

推荐答案

ObjectID documentation表示自动生成的ID包括一个3字节的机器ID(可能是MAC地址的散列).人们通过比较不同ID中的这三个字节来了解你的内部网络并不是不可想象的,但除非你为五角大楼工作,这似乎不值得担心(你更容易受到一些更无聊的事情的影响,比如错误配置的Apache).

除此之外,赛隆是对的;通过URL公开ID本身并没有什么不安全之处.当然,是否是ugly是另一回事.你可以让它们变短(我自己也在考虑这个问题),但奇怪的是它们都差不多是一半.

Mongodb相关问答推荐

如何在MongoDB中查找和过滤嵌套数组

MongoDB通过查找具有多个数组的对象进行聚合

Golang mongodb聚合错误:管道阶段规范对象必须包含一个字段

MongoDB聚合$group阶段$top与$first在大型数据集上的效率

将数据从一个集合插入另一个集合的聚合

在 MongoDB 中加入多个集合

mongo:在 mongodb 6.0 docker 容器上找不到命令

MongoDB乘以对象值?

如何在mongoDB中按嵌套文档分组( group by )

mongo _id 字段重复键错误

mongodb 中的 --bindip 配置选项有什么作用?

使用 brew upgrade Mongo update from 3.4 to 4.0 报错:在try 升级到 4.0 之前,数据文件需要完全升级到 3.6 版

升级mongodb

Cannot connect to MongoDB errno:61

$orderby 和 Sort 之间的 MongoDB 区别

在 mongodb 中的索引列上查找重复项的快速方法

mongodb类型更改为数组

mongoose字符串到 ObjectID

MongoDB mongoexport 查询

为什么 Mongo 提示会使查询运行速度提高 10 倍?