提问人:Noob_Programmer 提问时间:6/1/2022 最后编辑:holydragonNoob_Programmer 更新时间:6/1/2022 访问量:251
SQL 注入 mssql 节点 .js [重复]
SQL Injection mssql Node.js [duplicate]
问:
我正在尝试在我的 Node.js 后端中阻止 SQL 注入。我正在使用 mssql 包,我正在做一些测试,我发现如果参数中有字符“,则查询不起作用(显然)。
sql.connect(sqlConfig, function (err) {
str_query = 'SELECT * FROM table WHERE notes= '+req.query.notes+'';
if (err) console.log(err);
var request = new sql.Request();
// query to the database and get the records
request.query(str_query, function (err, recordset) {
//here do things
}
我怎样才能防止这种情况?
答:
0赞
YMH
6/1/2022
#1
这是未经测试的,但这是我的做法。
以下是有关谷歌正在发生的事情的一些信息。
参数化查询强制开发人员首先定义所有 SQL 代码,然后稍后将每个参数传递给查询。这种编码风格允许数据库区分代码和数据,而不管提供什么用户输入。
sql.connect(sqlConfig, function (err) {
str_query = 'SELECT * FROM table WHERE notes=?';
if (err) console.log(err);
var request = new sql.Request();
// query to the database and get the records
request.query(str_query, [req.query.notes] , function (err, recordset) {
//here do things
}
评论