Java 如何使用SQL查询转义用户提供的参数?
尝试开始使用JDBC(使用Jetty+MySQL)。我不知道如何在SQL语句中转义用户提供的参数。例如:Java 如何使用SQL查询转义用户提供的参数?,java,security,jdbc,sql-injection,Java,Security,Jdbc,Sql Injection,尝试开始使用JDBC(使用Jetty+MySQL)。我不知道如何在SQL语句中转义用户提供的参数。例如: String username = getDangerousValueFromUser(); Statement stmt = conn.createStatement(); stmt.execute("some statement where username = '" + username + "'")); 在与语句一起使用之前,如何转义“username” 例如: con.prepa
String username = getDangerousValueFromUser();
Statement stmt = conn.createStatement();
stmt.execute("some statement where username = '" + username + "'"));
在与语句一起使用之前,如何转义“username”
例如:
con.prepareStatement("update Orders set pname = ? where Prod_Id = ?");
pstmt.setInt(2, 100);
pstmt.setString(1, "Bob");
pstmt.executeUpdate();
它将阻止原始SQL注入
如果要转义sql字符串,请检查。请注意,此方法是有效的
另请参见
,
并调用相应的集*()
方法。寻找相同的答案-我的用例是在SQL Server中调用批量插入。此语句不接受大容量文件名的参数。所以这是SQL参数转义的完全有效的用例。但我同意99.99%的人不知道他们在问什么:)。