我有以下选择更新查询 -
String test = "SELECT * FROM " + table_ + " WHERE " " FOR UPDATE ";
PreparedStatement pst = con.prepareStatement(test);
在这种情况下如何避免SQL注入?我知道使用参数化查询有帮助,但查看我的查询,我不知道如何参数化它:(任何建议/示例选择更新查询以避免SQL注入?
答案 0 :(得分:0)
对于JAVA试试这个:
String test = "SELECT * FROM " + table_ + " WHERE x=? AND y=? FOR UPDATE ";
PreparedStatement pst = con.prepareStatement(test);
pst.setInt(1,xvalue);
pst.setString(2,"yvalue");
pst.executeUpdate();
答案 1 :(得分:0)
如果用户输入可以更改table_
变量,则只会出现SQL注入漏洞。在这种情况下,我会考虑重新设计数据模式以更好地适应问题的可能性,或者至少在执行查询之前确保表名是一组预定义的有效表名。
需要更多关于查询目的的上下文来提供完整的解决方案和解释。