【问题标题】:Query returning sql string with wrong parameters查询返回带有错误参数的 sql 字符串
【发布时间】: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

【问题讨论】:

    标签: java spring-boot


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2012-05-29
      • 1970-01-01
      相关资源
      最近更新 更多