查询返回带有错误参数的 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 字符串的主要内容,如果未能解决你的问题,请参考以下文章
NancyFX:带有查询字符串参数的路由总是返回 404 NotFound
DB2 - 使用带有字符串数组参数的 Dapper 选择查询将不会返回正确的结果
PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)