gpt4 book ai didi

mongodb - 清理 Express 应用程序中的输入字段

转载 作者:行者123 更新时间:2023-12-02 05:16:18 27 4
gpt4 key购买 nike

我的网站上有几个电子邮件输入字段。对于这些,我有 1 个 POST 路由:

app.post('/', function(req, res){
Email.create(req.body.email, function(err, newEmail){
if(err){
console.log(err);
} else {
res.redirect('/');
};
});
});

我正在学习的训练营告诉我,不法分子可以在这些输入中使用脚本。但是,当我尝试这样的事情时:

<script>alert('test')</script>

没有任何反应。事实上,它只是被添加到我的 mongo 数据库中。

我还是按照训练营的建议安装了 express-sanitizer 并这样做了:

app.post('/', function(req, res){
req.body.email = req.sanitize(req.body.email);
Email.create(req.body.email, function(err, newEmail){
if(err){
console.log(err);
} else {
res.redirect('/');
};
});
});

但是,当我执行此操作并输入某些内容时,当我输入任何字符串或脚本时,我收到一条错误消息,指出“ObjectParameterError”。

我的 app.use 看起来像这样:

app.use(bodyParser.urlencoded({extended: true}));
app.use(expressSanitizer());

关于如何最好地保护自己免受脚本攻击以及​​如何正确实现 express-sanitizer 有什么建议吗?

最佳答案

这可能与您如何更改值有关。

我已经这样做了,效果很好:

const expressSanitizer = require('express-sanitizer')
let bodyParser = require('body-parser')

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true}))
//For Sanitising SQL
app.use(expressSanitizer())

然后当我想 sanitizer 时:

//Pulling the sanitised values from request body
var name = req.sanitize(req.body.name)
var email = req.sanitize(req.body.email)

关于mongodb - 清理 Express 应用程序中的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48232192/

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