nodejs mysql 我这边用字符串拼的sql 被领导吐槽了 问问各位怎么弄的
rt!
17 回复
connection.query(‘SELECT * FROM users WHERE id = ?’, [userId], function(err, results) { // … });
用ORM 比如 Sequelize
用1L的方式即可,字符串拼接sql容易被sql注入!
拼sql 拼时间长了,容易发生对眼
@zouzhenxing 你用的Sequelize?
没事, 用 mysql.escape / mysql.format 然后让领导注入一个试试…他就同意了…
@13241491189 NO,我是orm的反对者,我喜欢直接搞sql。这个函数就是mysql模块自带的方法。
多谢各位
我用的Sequelize
可以参考几个makeSQL方法,底层也用 mysql.escape 做了过滤
@zouzhenxing orm 我配置到项目中 各种不顺手 目前为止也在拼sql
npm mysql : avoid SQL Injection attacks
不用拼sql,?替代不就可以吗…再说只要不是用户输入,sql拼接又如何… 出错概率确实会比较大
我用类似mongo的语法
来自酷炫的 CNodeMD
别用字符串拼接SQL,稍有不慎SQL注入,应该用参数化SQL