gpt4 book ai didi

node.js - Node-MySQL - 在 Query() 方法中转义与 Mysql.Escape()/Mysql.EscapeId()

转载 作者:搜寻专家 更新时间:2023-10-31 22:37:21 25 4
gpt4 key购买 nike

我目前正在使用 node-mysql库将我的应用程序连接到 MySQL 实例。在阅读了我发现的其他一些 StackOverflow 问题和文章之后,听起来 node-mysql 每次调用 query() 方法时都会自动转义不安全字符。但是在一些代码片段中,我还看到 mysql.escape()mysql.escapeId()query() 方法中被调用。

看起来虽然 query() 会自动转义一些危险字符,但您仍然应该调用 mysql.escape()mysql.escapeId() 来逃避其他危险字符。

这是正确的吗?如果是这样,query() 方法会自动保护什么样的 SQL 注入(inject)攻击以及调用 mysql.escape() 会保护什么样的 SQL 注入(inject)攻击以及mysql.escapeId()?

最佳答案

不,query() 不会自动转义不安全字符。

要安全地转义值,您需要使用 mysql.escape()/mysql.escapeId() 或使用 ? 占位符,如所述这里:

https://github.com/felixge/node-mysql#escaping-query-values

connection.query('SELECT * FROM users WHERE id = ?', [userId], function(err, results) {
// ...
});

关于node.js - Node-MySQL - 在 Query() 方法中转义与 Mysql.Escape()/Mysql.EscapeId(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com