在插入MongoDB之前需要清理用户input(MongoDB + Node js组合)

我用NodeJS使用MongoDB,想知道在插入/更新数据库文档之前是否需要清理数据。 它很难find明确的答案,我想知道是否有任何节点模块很好地做到这一点,或者我需要去除$string中的所有出现或根本不需要担心这一点。 我知道PHP有漏洞,但我使用Node / Mongo(本地驱动程序)组合,但仍然不确定是否需要做任何清理用户input。

如果您将数据存储为string,并且不parsing它以执行Mongo命令,那么没有什么可担心的。

好的安全文章

http://cr.yp.to/qmail/guarantee.html

唯一的问题是当你检索用户input时,你parsing这个input来执行Mongo命令,在这里你需要注意清理input,否则你会受到攻击。

有一个npm包为你做

https://www.npmjs.com/package/mongo-sanitize

还有很好的文章

https://thecodebarbarian.wordpress.com/2014/09/04/defending-against-query-selector-injection-attacks/

是的你是。 欲了解更多信息检查了这一点; https://www.npmjs.com/package/content-filter

也可以使用本地的escape()方法来保护数据库。

运行下面的代码片段查看结果。

 let a = "{$gt:25}" console.log(a) console.log(escape(a))