Tag: 准备了语句

Node.js mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预处理语句)?

根据Node.js的mysql 包文档 : 为了避免SQL注入攻击,在SQL查询中使用数据之前,应该始终转义任何用户提供的数据。 你可以使用mysql.escape(),connection.escape()或pool.escape()方法。 我找不到任何使用mysql准备语句的文档/参考,除了在引用中使用'?' 字符。 它声明如下: 或者,你可以使用? 字符作为您想要转义的值的占位符… 这看起来与MySQL中的预处理语句类似, 但是它实际上在内部使用相同的connection.escape()方法。 从我与其他开发人员谈话的经验来看,开发人员社区中的普遍共识是准备好的语句是从Node.js执行mysql查询的唯一安全方式,但是,您可以使用mysql包来看到,没有明显的支持准备好陈述。 但是,表明他们避免SQL注入的方法是通过使用转义函数。 我的问题: mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预准备语句)?