gpt4 book ai didi

node.js - 在 Mongoose 中清理用户输入

转载 作者:IT老高 更新时间:2023-10-28 13:11:57 25 4
gpt4 key购买 nike

this fairly uninformative answer 除外和另一个 unpopular answer ,我似乎找不到任何关于使用 Mongoose 清理用户输入的资源。

有一个 blog post here关于 Node/MongoDB 注入(inject),这在服务器级别看起来不错,但在中间件级别(即 Mongoose)必须有一些东西可以净化输入并确保数据库中的合理安全性。

有这样的野兽,还是有必要?

最佳答案

好像是 mongo-sanitize npm 模块是原始转义功能的起点。老实说,这在连接/表达中间件层听起来更合适,因为在 mongoose 层,根据设计,代码不会对查询/更新参数施加任何期望,即它们是否由应用程序开发人员编写(在这种情况下,它们不得进行清理,否则它们将无法正常运行)或涉及用户输入(必须进行清理)。因此,我建议使用中间件函数来清理最常见的用户输入输入位置:req.bodyreq.queryreq.params。因此,例如,您可能会执行类似(草图)的操作:

var json = require("body-parser").json;
var sanitize = require("mongo-sanitize");

function cleanBody(req, res, next) {
req.body = sanitize(req.body);
next();
}

function updateUser(req, res) {
//...
// safe to build an update query involving req.body here
}
app.put("/api/users", json(), cleanBody, updateUser);

关于node.js - 在 Mongoose 中清理用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com