MongoDB在node.js中的安全性

对于说一个MySQL数据库有已知的安全问题。 这是如何适用于NoSQL数据库? 例如Injections,xss等。使用NoSQL db时,您需要采取什么样的安全措施? 特别是关于MongoDB(使用node-mongodb-native )和Node.js(使用Express)

如果是这样,有没有Node / Express模块​​有助于防止这种情况?

NodeJS,MongoDB(以及其他一些大量使用JavaScript的NoSQL数据库)存在特定的问题: serverside JavaScript注入 。 详情请看这里和这里(pdf) 。 它更像SQL注入比XSS。

简而言之,就是当攻击者仅仅期望JSON的时候就把javascript发送给你的nodejs或者mongodb。 所以理论上坏人可以把你的服务(DOS),访问你的数据,甚至文件系统。

为了防止这种攻击,你必须:

  1. 避免通过连接脚本和用户input来创build“ad-hoc”JavaScript命令。
  2. 使用正则expression式validation在SSJS命令中使用的用户input。
  3. 避免使用JavaScript eval命令。 特别是在parsingJSONinput时,请使用更安全的替代方法,如JSON.parse。