选择更新查询:避免SQL注入

时间:2014-03-11 07:44:26

标签: java sql

我有以下选择更新查询 -

String test = "SELECT * FROM " + table_ + " WHERE " " FOR UPDATE ";
PreparedStatement pst = con.prepareStatement(test);

在这种情况下如何避免SQL注入?我知道使用参数化查询有帮助,但查看我的查询,我不知道如何参数化它:(任何建议/示例选择更新查询以避免SQL注入?

2 个答案:

答案 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注入漏洞。在这种情况下,我会考虑重新设计数据模式以更好地适应问题的可能性,或者至少在执行查询之前确保表名是一组预定义的有效表名。

需要更多关于查询目的的上下文来提供完整的解决方案和解释。