我现在正在学习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" />
如果他知道这些密钥,我的页面访问者可以做些什么?他们是否告诉我数据库中对象的数量?他们是否告诉他们存储时间? ...
答案 0 :(得分:1)
对象id是集合中的12字节内部id,并公开以下信息:
可以在the MongoDB Manual上阅读。
这是安全风险,因为您将这些信息泄露给互联网上的潜在攻击者。
如评论者所说,最好设计一个主键,为关键字段赋予实际意义。
在MongoDB中,虽然不推荐,但可以定义自己的对象ID。