我使用MongoDB和NodeJS,我想知道在插入/更新数据库文档之前是否需要清理数据。我很难找到明确的答案,我想知道是否有任何Node模块可以很好地完成它,或者我需要删除所有出现在字符串中的$或者根本不需要担心这一点。我知道PHP有漏洞,但我使用Node / Mongo(本机驱动程序)组合,但仍不确定是否需要清理用户输入。
答案 0 :(得分:7)
如果您将数据存储为String并且您没有解析它以执行Mongo命令,那么没有什么可担心的。
关于安全的好文章
http://cr.yp.to/qmail/guarantee.html
当您检索用户输入并解析该输入以执行Mongo命令时,会出现唯一的问题,此处您需要注意清理输入,否则您将受到攻击。
有一个npm包为你做
https://www.npmjs.com/package/mongo-sanitize
关于这个的好文章
答案 1 :(得分:3)
是的,你这样做。 有关更多信息,请查看此信息; https://www.npmjs.com/package/content-filter
也可以使用本机escape()
方法来保护数据库。
运行下面的代码段以查看结果。
let a = "{$gt:25}"
console.log(a)
console.log(escape(a))