在学习MongoDB的基础知识时,我了解到MongoDB很容易受到开箱即用的注入攻击。在node中,可以使用mongo-splicate模块的帮助来防止这种情况。到目前为止,一切都很好。现在让我们将Mongoose添加到等式中。
如果我们使用Mongoose
- 我们还需要净化MongoDB输入吗?我们还应该和Mongoose一起使用mongo消毒液吗
- Mongoose是否提供任何显式注入保护,或者保护来自于在模式和模型中强制执行类型
我记得读到Mongoose可以在一定程度上防止注射,但我不知道具体情况,也不知道对Mongoose进行消毒是否多余。
就像前面提到的文章一样,当用户不发送这样的字符串时,问题就会出现"bergur"one_answers"myawesomepassword",但却发送用户名和密码的{"$ne": null}
。
如果您创建了一个模式并将用户名和密码定义为字符串,那么Mongoose会将其转换为字符串,从而避免了问题。
关于哪里注射,mongo消毒液对你没有帮助。解决方案是永远不要使用$where运营商
因此,简单地回答您的问题:
- 不,你不需要使用mongo消毒液
- 没有明确的注入保护,保护来自模式和模型