xte*_*xte 6 sql database spring sql-injection jdbctemplate
我对 Spring 的 JdbcTemplate 的 SQL 注入有一些类似的代码的担忧:
jdbcTemplate.query("SELECT * FROM " + tableName, new TableMapper());
Run Code Online (Sandbox Code Playgroud)
“tableName”变量是通过串联添加的,因为无法将其作为 JdbcTemplate 的参数传递。
“tableName”变量只能由管理员编辑,但我想知道技术上是否可以对此查询进行 SQL 注入攻击。
否则你能描述一种安全的方法吗?
Ber*_*gan -7
对的,这是可能的。我建议像这样修改你的代码:
jdbcTemplate.query("SELECT * FROM ?", new Object[]{tableName},new TableMapper());
Run Code Online (Sandbox Code Playgroud)
这会将 tableName 安全地插入到您的查询中;)
| 归档时间: |
|
| 查看次数: |
9779 次 |
| 最近记录: |