有一些关于这个主题的讨论(例如 Preventing SQL injection in Node.js )但实际上没有明确的清晰度或深入的讨论,更不用说任何地方的良好文档了。 node-mysql 文档讨论了 SQL 注入(inject)的预防和一些转义函数。但是,这些函数如何防止 SQL 注入(inject)尚不清楚。手册上说“字符串已安全转义”。仅此而已...是否仅限于转义某些字符?
对于与 connection.escape 和 pool.escape 中相同的功能,在 node-mysql 中似乎还有其他等价物,再次强调这些功能用于防止 SQL 注入(inject)。
在 node-mysql 中似乎也不支持真正的 prepare 语句。计划和文件在这方面再次不清楚。 Node-mysql 显然是 node.js 环境中非常流行的模块,并且至少在我有限的使用经验中相当稳定。 在 node-mysql 中防止 SQL 注入(inject)的最佳实践是什么?
最佳答案
仍然sequelize是脆弱的
db.query('SELECT Desc FROM Items WHERE Username IN (:names)', {
replacements: {
names: ["Bobby", "'); DELETE FROM Items WHERE 1=1; --')"]
}
});
关于mysql - 在 node-mysql 中防止 SQL 注入(inject)的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699488/