我是Node.js新手,不知道如何处理sql注入?我在Node.js中的代码如下所示:
connection.query('SELECT email FROM users WHERE firstName LIKE \'%'+firstName+'%\';', function (error, rows, fields){ someCodeHere... }我直接从用户那里接收输入,并将其放入查询中。我更关心这里的sql注入吗?Node.js会做消毒吗?如何防止Node.js中的sql注入?
编辑:
在上面的链接中,如果有人说我们应该使用:
connection.escape(query);我应该将它放在另一个变量中,还是我的代码应该如下所示:
connection.escape(query);
connection.query('SELECT email FROM users WHERE firstName LIKE \'%'+firstName+'%\';', function (error, rows, fields){ someCodeHere... }发布于 2014-02-28 08:20:30
我建议使用执行?的逃逸占位符。
var query = 'SELECT email FROM users WHERE firstName LIKE \'%?%\';';
connection.query(query, [firstName], function (error, rows, fields){
//someCodeHere...
});此外,您可能不希望将multipleStatements设置为true。默认情况下,它是假的,但正如自述文件中所指出的,它容易受到SQL注入的影响。在转义输入时,是否存在这种情况,我不确定。
multipleStatements:允许每个查询多个mysql语句。注意这一点,它会使您面临SQL注入攻击。(失责:假)
https://stackoverflow.com/questions/22089255
复制相似问题