tom*_*456 3 mongoose mongodb node.js express
考虑防止对我的 API 使用的 MongoDB 进行注入攻击。
私钥被发送到 API,API 检查私钥是否存在于数据库中:
App.findOne({ privateKey: privateKey }, function (err, app) {
//do something here
}
Run Code Online (Sandbox Code Playgroud)
像这样的简单搜索(我正在使用 Mongoosejs)容易受到注入攻击吗?我读过 $where 的使用,但不确定我是否需要在这里做任何事情来防止恶意活动。
任何建议将不胜感激。
更新:经过更多阅读后,我将查询更改为以下内容:
App.findOne({ privateKey: String(privateKey) }, function (err, app) {
//do something here
}
Run Code Online (Sandbox Code Playgroud)
这是一种改进吗?
如果您不强制执行变量的类型privateKey,则它很容易受到某些注入攻击,例如,如果有人向您发送了私钥{ "$gte" : "abracadabra" },则查询可能会返回客户端不应访问的文档。强制使用 as String 类型privateKey应该足以防范简单的注入攻击。
| 归档时间: |
|
| 查看次数: |
3213 次 |
| 最近记录: |