使用字符串连接从任意输入构造查询将
PreparedStatement不安全。看一下这个例子:
preparedStatement = "SELECt * FROM users WHERe name = '" + userName + "';";
如果有人放
' or '1'='1
as
userName,您
PreparedStatement将很容易受到SQL注入的攻击,因为该查询将以
SELECt * FROM users WHERe name = '' OR '1'='1';
所以,如果您使用
preparedStatement = "SELECt * FROM users WHERe name = ?";preparedStatement.setString(1, userName);
你会很安全的。
某些代码摘自该Wikipedia文章。



