java项目,怎么防止传参 sql注入?请给出一个具体的方式实现,要求输入参数值,输出是否存在sql注入风险的布尔值
时间: 2024-05-03 12:22:58 浏览: 77
如何防止sql注入?
为了防止传参 SQL 注入,可以使用 PreparedStatement 来执行 SQL 语句,它可以预编译 SQL 语句,从而避免 SQL 注入的风险。同时,可以使用参数化查询来防止 SQL 注入。下面是一个 Java 代码示例:
```
public boolean checkUser(String username, String password) throws SQLException {
boolean result = false;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = getConnection();
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
rs = stmt.executeQuery();
if (rs.next()) {
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(conn, stmt, rs);
}
return result;
}
```
在这个代码中,使用 PreparedStatement 来预编译 SQL 语句。其中,`?` 表示参数占位符,可以使用 `setString()` 方法设置参数值。这样,就可以避免 SQL 注入的风险。最后,通过判断查询结果是否存在,来输出是否存在 SQL 注入风险的布尔值。
阅读全文