例如 MySQL 数据库存在已知的安全问题。这如何适用于 NoSQL 数据库?例如注入(inject)、xss 等。使用 NoSQL 数据库时必须采取哪些安全措施?特别是关于 MongoDB(使用 node-mongodb-native)和 Node.js(使用 Express)
如果有,是否有任何 Node/Express 模块有助于防止这种情况发生?
最佳答案
NodeJS、MongoDB(以及其他一些大量使用 javascript 的 NoSQL 数据库)存在特定问题:服务器端 javascript 注入(inject)。看here和 here (pdf)详情。它更像是 SQL 注入(inject)而不是 XSS。
简而言之,就是攻击者将 javascript 发送到您的 nodejs 或 mongodb,而您只需要 JSON。所以理论上坏人可以让你的服务宕机(DOS),访问你的数据甚至文件系统。
要防止此类攻击,您必须:
- 避免通过连接脚本来创建“临时”JavaScript 命令 与用户输入。
- 使用正则表达式验证 SSJS 命令中使用的用户输入。
- 避免使用 JavaScript eval 命令。特别是,在解析 JSON 输入时,请使用更安全的替代方法,例如 JSON.parse。
关于node.js - node.js 中的 Mongodb 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969301/