use*_*701 9 java security sql-injection jdbc
尝试开始使用JDBC(使用Jetty + MySQL).我不确定如何在SQL语句中转义用户提供的参数.例:
String username = getDangerousValueFromUser();
Statement stmt = conn.createStatement();
stmt.execute("some statement where username = '" + username + "'"));
Run Code Online (Sandbox Code Playgroud)
在使用声明之前我们如何逃避"用户名"?
Jig*_*shi 16
使用准备好的声明.
例如 :
con.prepareStatement("update Orders set pname = ? where Prod_Id = ?");
pstmt.setInt(2, 100);
pstmt.setString(1, "Bob");
pstmt.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
它将阻止原始SQL注入
如果要转义sql字符串,请检查StringEscapeUtils.escapeSql().请注意,此方法在Commons Lang 3中已弃用.
另见
| 归档时间: |
|
| 查看次数: |
10259 次 |
| 最近记录: |