解释checkKeys参数显示的mongodb注入漏洞

解释checkKeys参数显示的mongodb注入漏洞,mongodb,code-injection,Mongodb,Code Injection,从 checkKeys{Boolean,默认值:true},允许禁用文档密钥检查警告,从而使您面临注入攻击 我找不到任何使用此漏洞的示例。有没有可能我自己做一些卫生设施来缓解不使用内置卫生设施的情况?例如,拒绝具有包含非字母数字、非句点字符的键的任何对象?该链接引用了非常旧的驱动程序v1.4.9的文档,该驱动程序在mongodb上一直运行到v3.0,于2018年2月退役 检查键选项用于与2016年10月结束的v2.6版OP_INSERT wire协议支持的v2.6版之前版本向后兼容 建议在升级过

checkKeys{Boolean,默认值:true},允许禁用文档密钥检查警告,从而使您面临注入攻击


我找不到任何使用此漏洞的示例。有没有可能我自己做一些卫生设施来缓解不使用内置卫生设施的情况?例如,拒绝具有包含非字母数字、非句点字符的键的任何对象?

该链接引用了非常旧的驱动程序v1.4.9的文档,该驱动程序在mongodb上一直运行到v3.0,于2018年2月退役

检查键选项用于与2016年10月结束的v2.6版OP_INSERT wire协议支持的v2.6版之前版本向后兼容


建议在升级过程中投入一些精力,而不是为数据库的古老版本定制一些卫生设施。

谢谢。当我运行3.6时,很明显,对于更当前的版本,checkKeys是一个未记录的标志,因此我将采用与依赖未记录行为不同的方法。该标志仅在旧式wire协议中有意义,该协议在v2.0发行说明中被弃用,声称不支持中的v2.6之前的数据库。是什么让你认为当前版本的驱动程序中仍在使用检查键?因为我正在使用它。如果我不使用它,我会在使用带有句点的键时出现异常。当我查看node_模块时,我可以看到mongodb包的package.json列出了3.0.4版。bson仍然支持该标志,所以我必须假设它被传递下去。