查询返回带有错误参数的 sql 字符串

Posted

技术标签:

【中文标题】查询返回带有错误参数的 sql 字符串【英文标题】:Query returning sql string with wrong parameters 【发布时间】:2022-01-23 21:40:45 【问题描述】:

我目前正在修复我的项目中的一些 SQL 注入错误。

这是我当前的 sql 字符串:

String sql = "select * from :table order by storenum";

我是这样设置参数的:

SQLQuery query =  sess.createSQLQuery(sql).setParameter("table", table);

(table是通过方法传入的字符串)

每当我运行程序时,我都会得到这样的结果:

select * from ? order by storenum

【问题讨论】:

【参考方案1】:

您不能动态绑定表名,只能动态绑定值,因此您必须借助字符串操作/连接来动态获取表名。但是,您可能希望将其转义以避免 SQL 注入。

【讨论】:

以上是关于查询返回带有错误参数的 sql 字符串的主要内容,如果未能解决你的问题,请参考以下文章