提问人:sandy 提问时间:2/15/2023 最后编辑:Vladimir Shefersandy 更新时间:4/12/2023 访问量:630
SQL注入jdbcTemplate
SQL Injection jdbcTemplate
问:
select ID from USER where ID is not null order by ID
Tenacity 将 SQl 注入视为高漏洞。
我尝试解决如下:
String sql = "select ID from user where :id is not null order by ID";
NamedParameterJdbcTemplate jdbcNamesTpl = new NamedParameterJdbcTemplate(this.jdbcTemplate);
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("id", "ID");
jdbcNamesTpl.query(sql,parameters,mapper);
但是我得到了所有记录以及空值。有人分享想法或任何建议来解决吗?
答:
0赞
Egret
2/18/2023
#1
似乎正在使用 Spring NamedParameterJdbcTemplate - 正如人们指出的那样,这似乎使用了参数化查询,这应该是安全的。
Tenacity 可能会感到困惑,因为命名参数与列相同 - 并且它认为您在 order by 子句中使用了命名参数(这将是潜在的 SQL 注入)。尝试将参数的名称更改为不是列名称的名称。
评论
[user]
[ID]
"user"
"ID"