node.js中的Mongodb安全性

geo*_*per 10 database security code-injection mongodb node.js

比如说MySQL数据库存在已知的安全问题.这如何适用于NoSQL数据库?例如注射,xss等.使用NoSQL数据库时你必须采取哪些安全措施?特别是关于MongoDB(使用node-mongodb-native)和Node.js(使用Express)

如果是这样,是否有任何Node/Express模块​​可以帮助防止这种情况发生?

om-*_*nom 11

对于NodeJS,MongoDB(以及其他一些大量使用javascript的NoSQL数据库)存在特定问题:serverside javascript注入.看看这里这里(PDF)了解详细信息.它更像是SQL注入而不是XSS.

不久之后,当你期待JSON时,攻击者会将javascript发送到你的nodejs或mongodb.所以理论上坏人可以降低你的服务(DOS),访问你的数据甚至文件系统.

要防止此类攻击,您必须:

  1. 避免通过将脚本与用户输入连接来创建"ad-hoc"JavaScript命令.
  2. 使用正则表达式验证SSJS命令中使用的用户输入.
  3. 避免使用JavaScript eval命令.特别是,在解析JSON输入时,请使用更安全的替代方法,例如JSON.parse.