将参数传递给 JDBCPreparedStatement
在 JDBC 中,准备好的语句用于通过一次编译语句来高效、安全地执行 SQL 语句,使用不同的参数多次执行它。将参数传递给准备好的语句时,确保正确设置参数至关重要,以防止 SQL 注入攻击和语句格式错误。
问题说明
提供的代码尝试根据传递给 Validation 类构造函数的 userID 参数从数据库表中选择一行。但该语句缺乏参数化,导致执行不正确,并存在潜在的 SQL 注入漏洞。
解决方案
要正确传递 userID 参数,请使用 setString() 方法设置查询参数的值。这可确保语句格式正确并防止 SQL 注入攻击。
statement = con.prepareStatement("SELECT * FROM employee WHERE userID = ?"); statement.setString(1, userID);
通过遵循此方法,提供的代码将根据指定的 userID 参数从数据库表中正确选择行。
最佳实践
以上是如何安全地将参数传递给 JDBCPreparedStatement?的详细内容。更多信息请关注PHP中文网其他相关文章!