我一直在阅读有关准备语句,它说SQL注入仍然是非常有可能的。现在,如果我正在创建一个Web应用程序,我会用Spring,但我认为它允许这样的攻击很奇怪。准备语句和SQL注入
PreparedStatement强制您选择索引。这会导致很多问题,因为您不会总是想要一遍又一遍地选择相同的位置来存储数据。即使你创建了一个计数器,它也会产生反效果,因为它会重置程序关闭的所有内容。
String query = "INSERT INTO offers (name,email.text) VALUES
'"+name+"','"+email+ "','"+text+"'";
可以说上面的代码是我的查询。什么是安全的选择,并会允许mySQL数据库中的自动增量。
“的PreparedStatement迫使你挑指数” - 请解释。什么索引,什么柜台,你在说什么问题? – RealSkeptic 2015-04-03 11:14:50
什么是柜台?你为什么需要挑选它?你在自动递增?这种情况下的位置是什么?请提供一个例子,说明您如何认为准备好的声明有效。 – 2015-04-03 11:16:48
String query =“UPDATE offers SET name = name?WHERE name =?”; 尝试{ \t \t \t ps = conn.prepareStatement(query); \t \t \t ps.setString(1,user.getName()); \t \t \t ps.setString(2,user.getEmail()); \t \t \t ps.execute(query); \t \t} catch(Exception e){ \t \t \t System.out。println(“更新时出错:”+ e); \t \t} \t} – jocdrew21 2015-04-03 11:41:45