AI
sql-injection
SQL注入风险:用户状态参数直接拼接 SQL 查询
L18
getActiveUsers 方法中,status 参数直接拼接到 SQL 查询字符串中,攻击者可传入恶意值导致 SQL 注入。同时缺少对 Connection 为 null 的防御性检查。
🎯 安全漏洞
使用 PreparedStatement 参数化查询;添加 Connection 非空校验;使用 try-with-resources 管理资源
- String query = "SELECT username FROM users WHERE status = '" + status + "'";
+ String query = "SELECT username FROM users WHERE status = ?";
+ PreparedStatement ps = conn.prepareStatement(query);
+ ps.setString(1, status);
+ ResultSet rs = ps.executeQuery();