如何解决Nodejs 防止对标识符名称进行 SQL 注入
在进行 SQL 查询时,我们希望避免参数的字符串连接以防止 SQL 注入。对于 pg,您可以使用查询参数来确保安全,例如
client.query('SELECT name FROM myTable where id=$1',[id])
我试图运行一个查询来删除一个表,然后重命名另一个表,表名是我想要传入的变量。类似
const dropTable = `DROP TABLE IF EXISTS ${dbSchema}.${dbTableName}`
const renameTable = `ALTER TABLE ${dbSchema}.${oldTableName} RENAME TO ${dbTableName}`
但以下在 pg 中不起作用
client.query('DROP TABLE IF EXISTS $1',[`${dbSchema}.${dbTableName}`])
client.query('ALTER TABLE $1 RENAME TO $2',[`${dbSchema}.${oldTableName}`,`${dbTableName}`]
您似乎无法参数化标识符。如何在 SQL 查询中安全地将变量作为标识符传递?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。