提问人:Anshu 提问时间:2/7/2020 最后编辑:Anshu 更新时间:2/7/2020 访问量:301
修复基于 URL 内容的 SQL 注入
to fix URL content based SQL injection
问:
我正在尝试修复我的应用程序的 SQL 注入。我用来获取详细信息的 SQL 查询是
"SELECT accountNumber, balance FROM accounts WHERE reg_id = "
+ request.getParameter("reg_id");
我知道这个查询容易受到攻击,这就是为什么我尝试使用绑定参数来解决此问题的原因,但问题是reg_id字母数字数据以及“-”(连字符作为特殊符号,例如 - 1abh34-dfg465-aw234)并且我无法使用 和 方法来验证reg_id。statement.setInt()
statement.setString()
我的问题是,有什么方法可以用来验证字母数字数据吗?
我的 java 代码是
String accountBalanceQuery =
"SELECT accountNumber, balance FROM accounts WHERE reg_id = "
+ request.getParameter("reg_id");
try {
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(accountBalanceQuery);
while (rs.next()) {
page.addTableRow(rs.getInt("accountNumber"), rs.getFloat("balance"));
}
} catch (SQLException e) { ... }
或者有没有其他方法可以在没有绑定参数的情况下修复此漏洞。任何这方面的线索将不胜感激。
答: 暂无答案
评论
reg_id
setString()
getParameter()
setString()