• ADADADADAD

    node如何预防sql注入[ 网络知识 ]

    网络知识 时间:2024-12-03 10:19:32

    作者:文/会员上传

    简介:

    node预防sql注入的方法:1.使用mysql.format()转义参数,例如:var userId = 1;var sql = "SELECT * FROM ?? WHERE ?? = ?";var inserts = ['users', 'id', userId];sql = mysql.

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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注入.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: sql注入node