@Override public void sureUpPassword(String userAccount, String userPassword) { String sql = update person set userPassword = +userPassword+ where userAccount= +userAccount+ ;
时间: 2024-03-01 11:50:50 浏览: 84
spring+shiro 整合实例代码详解
这段代码存在 SQL 注入漏洞,应该使用 PreparedStatement 来避免。正确的代码应该是:
```
@Override
public void sureUpPassword(String userAccount, String userPassword) {
String sql = "UPDATE person SET userPassword = ? WHERE userAccount = ?";
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setString(1, userPassword);
ps.setString(2, userAccount);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
```
这样可以防止用户恶意输入特殊字符导致 SQL 注入攻击。
阅读全文