gpt4 book ai didi

mysql - nodejs mysql 模块是否为我们转义?如果没有那么如何 sanitizer ?

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:06 26 4
gpt4 key购买 nike

我是 Node.js 的新手,不知道如何处理 sql 注入(inject)?我在 Node.js 中的代码如下所示:

connection.query('SELECT email FROM users WHERE firstName LIKE \'%'+firstName+'%\';', function (error, rows, fields){ someCodeHere... }

我直接从用户那里接收输入并将其放入查询中。我更关心这里的sql注入(inject)? Node.js 是否进行清理?如何防止 Node.js 中的 sql 注入(inject)?


编辑:
在上面的链接中,我们应该使用:

connection.escape(query);

我应该将它放在另一个变量中还是我的代码应该如下所示:

connection.escape(query);
connection.query('SELECT email FROM users WHERE firstName LIKE \'%'+firstName+'%\';', function (error, rows, fields){ someCodeHere... }

最佳答案

我建议使用执行 escaping? 占位符.

var query = 'SELECT email FROM users WHERE firstName LIKE \'%?%\';';
connection.query(query, [firstName], function (error, rows, fields){
//someCodeHere...
});

此外,您可能希望multipleStatements 设置为true。默认情况下为 false,但正如自述文件中所述,它容易受到 SQL 注入(inject)的影响。当输入被转义时是否是这种情况,我不确定。

multipleStatements: Allow multiple mysql statements per query. Be careful with this, it exposes you to SQL injection attacks. (Default: false)

关于mysql - nodejs mysql 模块是否为我们转义?如果没有那么如何 sanitizer ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089255/

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