我目前正在使用节点mysql用于将我的应用程序连接到 MySQL 实例的库。在阅读了我发现的其他一些 StackOverflow 问题和文章后,听起来 node-mysql 每次都会自动转义不安全字符query()
方法被调用。但在一些代码片段中,我也看到mysql.escape()
and mysql.escapeId()
被称为内query()
method.
好像就在那时query()
自动转义一些危险字符,你仍然应该调用mysql.escape()
and mysql.escapeId()
躲避其他危险人物。
它是否正确?如果是这样,该系统会自动防御哪种类型的 SQL 注入攻击query()
方法以及通过调用来防护什么样的SQL注入攻击mysql.escape()
and mysql.escapeId()
?
No, query()
不会自动转义不安全字符。
为了安全地转义值,您需要使用mysql.escape()
/mysql.escapeId()
or use ?
占位符如下所述:
https://github.com/felixge/node-mysql#escaping-query-values
connection.query('SELECT * FROM users WHERE id = ?', [userId], function(err, results) {
// ...
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)