如果所有的数据库操作都是通过Mongoose完成的,那么注入仍然是一个问题吗



在学习MongoDB的基础知识时,我了解到MongoDB很容易受到开箱即用的注入攻击。在node中,可以使用mongo-splicate模块的帮助来防止这种情况。到目前为止,一切都很好。现在让我们将Mongoose添加到等式中。

如果我们使用Mongoose

  • 我们还需要净化MongoDB输入吗?我们还应该和Mongoose一起使用mongo消毒液吗
  • Mongoose是否提供任何显式注入保护,或者保护来自于在模式和模型中强制执行类型

我记得读到Mongoose可以在一定程度上防止注射,但我不知道具体情况,也不知道对Mongoose进行消毒是否多余。

就像前面提到的文章一样,当用户不发送这样的字符串时,问题就会出现"bergur"one_answers"myawesomepassword",但却发送用户名和密码的{"$ne": null}

如果您创建了一个模式并将用户名和密码定义为字符串,那么Mongoose会将其转换为字符串,从而避免了问题。

关于哪里注射,mongo消毒液对你没有帮助。解决方案是永远不要使用$where运营商

因此,简单地回答您的问题:

  1. 不,你不需要使用mongo消毒液
  2. 没有明确的注入保护,保护来自模式和模型

相关内容

  • 没有找到相关文章