在DOM中使用mongodb对象的_id值是个好主意吗?

时间:2017-07-09 09:20:23

标签: java node.js mongodb dom mongoose

我现在正在学习mongoDB(和mongoose)(在快速服务器上)。我拥有一个包含多个对象数组的数据库。 (像这样):

{texts: [{s: "a"}, {s: "b"}, {s: "c"}]}

对象具有_id属性。 (59613f576db598107269eea7,59613f576db598107269eea8,59613f576db598107269eea9,59613f576db598107269eeaa)

我的计划是做这样的事情(对访客可见):

<input id="59613f576db598107269eea7" value="a" />
<input id="59613f576db598107269eea8" value="b" />
<input id="59613f576db598107269eea9" value="c" />

如果他知道这些密钥,我的页面访问者可以做些什么?他们是否告诉我数据库中对象的数量?他们是否告诉他们存储时间? ...

1 个答案:

答案 0 :(得分:1)

对象id是集合中的12字节内部id,并公开以下信息:

  • 4个字节,表示自纪元以来的秒数
  • 3字节机器标识符
  • 2字节进程ID
  • 3字节计数器

可以在the MongoDB Manual上阅读。

这是安全风险,因为您将这些信息泄露给互联网上的潜在攻击者。

如评论者所说,最好设计一个主键,为关键字段赋予实际意义。

在MongoDB中,虽然不推荐,但可以定义自己的对象ID。