我真的很喜欢 MongoDB 的自动生成 ID。它们真的很有用。
但是,公开使用它们是否可以节省?
假设有一个帖子集合,并且/posts 页面采用 id 参数(类似于/posts/4d901acd8df94c1fe600009b)并显示有关它的信息。
这样用户/黑客将知道文档的真实对象 ID。好还是不安全?
谢谢
最佳答案
ObjectID documentation声明自动生成的 ID 包括一个 3 字节的机器 ID(可能是 MAC 地址的哈希)。有人可以通过比较各种 id 中的这三个字节来了解有关您的内部网络的事情并不是不可想象的,但除非您正在为五角大楼工作,这似乎不值得担心(您更有可能容易受到更无聊的东西,比如配置错误的 Apache)。
除此之外,Epcylon 是对的;通过 URL 公开 id 本身并没有什么不安全的地方。当然,是否丑是另一回事。您可以对它们进行 base64 以使它们更短(我自己也在考虑这个问题),但奇怪的是它们几乎都是一样的。
关于security - MongoDB:使用文档 ID "in public"是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587523/