javascript - mongodb 中是否有类似于 php 中的准备语句以确保安全?

标签 javascript php mongodb security

我刚刚学习 mongodb,有一个重要的问题。 mongodb 中是否有像 php 中那样的安全性?在 php 中我可以使用类似的东西:

$stmt = $this->conn->prepare("UPDATE news SET shown = shown+1 WHERE newsID = :newsID");
$stmt->bindValue(":newsID", $id, PDO::PARAM_INT);
$stmt->execute();

但是 mongodb 呢?看到将变量直接插入到 mongodb insert 语句中很奇怪,例如:

db.products.insertOne( { _id: 10, "item": itemName, "qty": itemQuantity } );

谢谢您的解释!

最佳答案

除非你构建类似的东西

db.products.insertOne( JSON.parse('{ _id: 10, "item": itemName, "qty": itemQuantity }') )

SQL注入(inject)会相当困难。我想没有人会自愿编写这样的代码。

当你运行像 db.find({"someProperty": userInput}) 这样的语句时 黑客尝试传递 {"$exists": true} 那么结果会是 db.find({"someProperty": "{\"$exists\": true}"}) 不应返回任何结果。

但如上所述,使用 JSON.parse() 或类似内容可能会存在安全缺陷。

关于javascript - mongodb 中是否有类似于 php 中的准备语句以确保安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69785444/

相关文章:

javascript - 在 Javascript 中寻找具有区域设置和时区支持的日期解析器库

javascript - 简单的Javascript函数问题

php - 使用 jQuery 或 PHP 进行文本比较

MongoDB全文搜索+部分单词匹配的解决方法

javascript - 在 meteor 中使用 mongodb 将函数存储在数据库中

javascript - 我可以在 AngularJS 中使用 Async.js 库吗?

javascript - 在javascript中提交表单后页面重定向回来

php - 通过 HTTP 发送请求时 ZeroMQ 不起作用

php - Codeigniter - 在 foreach-ing 通过 id 从另一个表获取行数时查看

mongodb - Mongoose 文档架构和验证