首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs mysql模块会为我们转义吗?如果没有,如何消毒?

问nodejs mysql模块会为我们转义吗?如果没有,如何消毒?
EN

Stack Overflow用户
提问于 2014-02-28 07:48:19
回答 1查看 2K关注 0票数 0

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

代码语言:javascript
复制
connection.query('SELECT email FROM users WHERE firstName LIKE \'%'+firstName+'%\';', function (error, rows, fields){ someCodeHere... }

我直接从用户那里接收输入,并将其放入查询中。我更关心这里的sql注入吗?Node.js会做消毒吗?如何防止Node.js中的sql注入?

编辑:

在上面的链接中,如果有人说我们应该使用:

代码语言:javascript
复制
connection.escape(query);

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

代码语言:javascript
复制
connection.escape(query);
connection.query('SELECT email FROM users WHERE firstName LIKE \'%'+firstName+'%\';', function (error, rows, fields){ someCodeHere... }
EN

回答 1

Stack Overflow用户

发布于 2014-02-28 08:20:30

我建议使用执行?的逃逸占位符。

代码语言:javascript
复制
var query = 'SELECT email FROM users WHERE firstName LIKE \'%?%\';';
connection.query(query, [firstName], function (error, rows, fields){
  //someCodeHere... 
});

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

multipleStatements:允许每个查询多个mysql语句。注意这一点,它会使您面临SQL注入攻击。(失责:假)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22089255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档