MongoDB中的唯一ID

时间:2013-02-12 20:11:25

标签: mongodb

我即将部署我的第一个使用MongoDB的Web服务的生产版本。 这种Web服务可能容易受到攻击(黑客)。 我一直使用内置的Object-ID作为每个值的唯一标识符,这是公开的(或者至少是经过身份验证的用户)。

考虑到它是建立在诸如对象创建时间戳,机器和进程ID等(http://docs.mongodb.org/manual/core/object-id/)之类的数据上,这可能会成为一个问题吗? 可能是因为我提供了太多关于何时创建对象,使用了多少台机器等信息? 你的建议是什么?

1 个答案:

答案 0 :(得分:2)

不是真的。它不能用于绘制您的网络或您的计算机的图形,也不能用于查找隐藏的对象,甚至无法绘制流量和加载时间图(正如我从尝试中发现的那样)。

例如,与自动递增ID不同,您无法轻易判断使用哪个时间戳或PID或机器ID来创建下一个ObjectID。这使得抓取隐藏对象非常困难,特别是如果您没有在某处公开链接它们。

PID和机器ID不是很擅长识别网络的任何内容,PID几乎可以随时更改,无论是重新启动进程还是重新启动服务器;或者,如果您使用的是PHP语言,则每次都有新连接。

机器ID是另一条无用的信息,除了您的计算机之外,其他任何人都无法获得任何有意义的结果。我不相信它使用网络接口ID(一些驱动程序),所以它不能用于从外部识别机器。

总之,不是真的。