如何防止使用数字数据进行SQL注入
我编写了简短的源代码,效果很好。但是我想防止SQL注入。因为此代码无法阻止SQL注入。
这是我的原始代码
router.get(`/sitemap/:page`, function(req, res, next) {
let pageNumber = String(req.params.page) + "00";
db.query(
`SELECT * FROM user order by displayId*1 LIMIT ${pageNumber}, 100`,
function(error, data) {
if (error) {
throw error;
}
// console.log(data);
res.render("sitemap", {
dataarray: data,
pageNumber: pageNumber
});
}
);
});
而且效果很好,但是不能阻止SQL注入,因此我尝试了此方法,但是由于'字符而导致错误。
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, 100' at line 1
[[尝试另一种方法]
router.get(`/sitemap/:page`, function(req, res, next) {
let pageNumber = String(req.params.page) + "00";
db.query(
`SELECT * FROM user order by displayId*1 LIMIT ?, 100`,
[pageNumber], // I FIX THIS PART!!!!
function(error, data) {
if (error) {
throw error;
}
// console.log(data);
res.render("sitemap", {
dataarray: data,
pageNumber: pageNumber
});
}
);
});
我该如何解决这个问题。我认为应该是字符串,所以我尝试了String(pageNumber)
,但仍然无法正常工作。
首选使用变量中的值,避免使用内联查询,尝试使用存储过程。
如何防止使用数字数据进行SQL注入
我编写了简短的源代码,效果很好。但是我想防止SQL注入。因为此代码无法阻止SQL注入。
这是我的原始代码
router.get(`/sitemap/:page`, function(req, res, next) {
let pageNumber = String(req.params.page) + "00";
db.query(
`SELECT * FROM user order by displayId*1 LIMIT ${pageNumber}, 100`,
function(error, data) {
if (error) {
throw error;
}
// console.log(data);
res.render("sitemap", {
dataarray: data,
pageNumber: pageNumber
});
}
);
});
而且效果很好,但是不能阻止SQL注入,因此我尝试了此方法,但是由于'字符而导致错误。
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, 100' at line 1
[[尝试另一种方法]
router.get(`/sitemap/:page`, function(req, res, next) {
let pageNumber = String(req.params.page) + "00";
db.query(
`SELECT * FROM user order by displayId*1 LIMIT ?, 100`,
[pageNumber], // I FIX THIS PART!!!!
function(error, data) {
if (error) {
throw error;
}
// console.log(data);
res.render("sitemap", {
dataarray: data,
pageNumber: pageNumber
});
}
);
});
我该如何解决这个问题。我认为应该是字符串,所以我尝试了String(pageNumber)
,但仍然无法正常工作。
首选使用变量中的值,避免使用内联查询,尝试使用存储过程。