使用preparedStatement来防止SQL注入

时间:2016-07-13 16:32:30

标签: prepared-statement sql-injection

我有这样的SQL查询:

StringBuilder sSelect = new StringBuilder("SELECT C ");
StringBuilder sFrom = new StringBuilder(" FROM CUSTOMER as C ");

if (phoneNumber != null)
{
  sFrom.append(" where C.number = ").append(phoneNumber);
}

我想要一个防止SQL注入的解决方案。这样的事情很好:

sWhere.append(" I.indicNom=").append(":sPhoneNumber").append(" ");
parameters.put("sPhoneNumber", phoneNumber);

我的目的是使用preparedStatement。是否可以逐步创建SQL?

例如:

select * from tableX if(condition) {add where X=:Y } else {do nothing}

而不是

select * from tableX where X=?

1 个答案:

答案 0 :(得分:0)

没有通用方法可以发现和阻止所有类型的SQL注入攻击先验