承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

如何预防:node如何预防sql注入

管理员 2023-03-30 09:54:24 互联网圈 36 ℃ 0 评论 1717字 收藏

node如何预防sql注入

node如何预防sql注入

node预防sql注入的方法:

1.使用mysql.format()转义参数,例如:

var userId = 1;

var sql = "SELECT * FROM ?? WHERE ?? = ?";

var inserts = ['users', 'id', userId];

sql = mysql.format(sql, inserts); // SELECT * FROM users WHERE id = 1

2.使用connection.query()的查询参数占位符,例如:

var userId = 1, name = 'test';

var query = connection.query('SELECT * FROM users WHERE id = ?, name = ?', [userId, name], function(err, results) {

// ...

});

console.log(query.sql); // SELECT * FROM users WHERE id = 1, name = 'test'

还是改写成:

var post = {userId: 1, name: 'test'};

var query = connection.query('SELECT * FROM users WHERE ?', post, function(err, results) {

// ...

});

console.log(query.sql); // SELECT * FROM users WHERE id = 1, name = 'test'

3. 使用escapeId()编码SQL查询标识符,例如:

var sorter = 'date';

var sql = 'SELECT * FROM posts ORDER BY ' + connection.escapeId(sorter);

connection.query(sql, function(err, results) {

// ...

});

4.使用escape()对传入参数进行编码,例如:

var userId = 1, name = 'test';

var query = connection.query('SELECT * FROM users WHERE id = ' + connection.escape(userId) + ', name = ' + connection.escape(name), function(err, results) {

// ...

});

console.log(query.sql); // SELECT * FROM users WHERE id = 1, name = 'test'

文章来源:丸子建站

文章标题:如何预防:node如何预防sql注入

https://www.wanzijz.com/view/5540.html

TAG: sql注入 node
X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信