nodejs MYSQL中的mysql.format对未转义的输入是否安全?

时间:2018-11-20 18:53:33

标签: mysql node.js database

我听说准备MySQL查询会阻止注入。我正在使用nodejs,因此发现了MySql Preparing Queries。根据文档,

  

您可以使用mysql.format准备多次插入的查询   点,利用ID和值的正确转义。

这是否意味着我可以将未转义的内容放入userId中并获得名为sql的转义mysql请求?

代码是:

var sql = "SELECT * FROM ?? WHERE ?? = ?";
var inserts = ['users', 'id', userId];
sql = mysql.format(sql, inserts);

1 个答案:

答案 0 :(得分:1)

很安全。

转义由sqlstring模块执行,您可以查看其源代码以获取更多信息,它很小。

您应该始终通过使用?占位符或直接调用escape来逃避值。但是,更建议使用占位符,因为它可以保护您免受可能忘记手动转义的情况的影响。