我的代码的以下部分引起了"二阶SQL注入"的关注。
private String function1 (String var1) {
String sql = "SELECT field1 FROM table1 WHERE field2 = ?";
PreparedStatement ps = null;
ResultSet resultSet = null;
String result = "";
try{
ps = conn.prepareStatement(sql);
ps.setString(1, var1);
resultSet = ps.executeQuery();
if(resultSet.next()){
result = rs.getString("fldDesc");
}
}catch(SQLException e){
e.printStackTrace();
}
}
但是,据我所知,由于查询和数据的分离,preparedStatement应该对二阶SQL注入安全。
我能否知道为什么会引起人们对它的担忧呢?