Java 使用regex阻止jtextfield中的SQL注入项
是否有其他方法可以使用正则表达式阻止文本字段中的sql注入? 这就是我用来阻止某些特殊字符的方法:Java 使用regex阻止jtextfield中的SQL注入项,java,regex,jtextfield,Java,Regex,Jtextfield,是否有其他方法可以使用正则表达式阻止文本字段中的sql注入? 这就是我用来阻止某些特殊字符的方法: private static final String PATTERN = "([^A-Za-z0-9.,'\"% _-]+)"; 正如我所说的,有些。如果可能的话,我想阻止所有的,我只想使用正则表达式。请帮忙。:) 正确的方法是使用PreparedStatement执行查询。它将负责可能的注射 您可以找到文档和教程 例如,在设置数据库连接后,请使用以下方法: // add e
private static final String PATTERN =
"([^A-Za-z0-9.,'\"% _-]+)";
正如我所说的,有些。如果可能的话,我想阻止所有的,我只想使用正则表达式。请帮忙。:) 正确的方法是使用
PreparedStatement
执行查询。它将负责可能的注射
您可以找到文档和教程 例如,在设置数据库连接后,请使用以下方法:
// add exception handling where necessary
PreparedStatement insertStmt = null;
String query = "INSERT INTO sometable"
+ "(name, value) VALUES"
+ "(?,?)"; //here the question marks stand for parameters
insertStmt = dbConnection.prepareStatement(query);
insertStmt.setString(1, "somename"); //set the first param
insertStmt.setInt(2, value); // set the second param
insertStmt.executeUpdate();
正确的方法是使用
PreparedStatement
执行查询。它将负责可能的注射
您可以找到文档和教程 例如,在设置数据库连接后,请使用以下方法:
// add exception handling where necessary
PreparedStatement insertStmt = null;
String query = "INSERT INTO sometable"
+ "(name, value) VALUES"
+ "(?,?)"; //here the question marks stand for parameters
insertStmt = dbConnection.prepareStatement(query);
insertStmt.setString(1, "somename"); //set the first param
insertStmt.setInt(2, value); // set the second param
insertStmt.executeUpdate();
正确的方法是使用
PreparedStatement
执行查询。它将负责可能的注射
您可以找到文档和教程 例如,在设置数据库连接后,请使用以下方法:
// add exception handling where necessary
PreparedStatement insertStmt = null;
String query = "INSERT INTO sometable"
+ "(name, value) VALUES"
+ "(?,?)"; //here the question marks stand for parameters
insertStmt = dbConnection.prepareStatement(query);
insertStmt.setString(1, "somename"); //set the first param
insertStmt.setInt(2, value); // set the second param
insertStmt.executeUpdate();
正确的方法是使用
PreparedStatement
执行查询。它将负责可能的注射
您可以找到文档和教程 例如,在设置数据库连接后,请使用以下方法:
// add exception handling where necessary
PreparedStatement insertStmt = null;
String query = "INSERT INTO sometable"
+ "(name, value) VALUES"
+ "(?,?)"; //here the question marks stand for parameters
insertStmt = dbConnection.prepareStatement(query);
insertStmt.setString(1, "somename"); //set the first param
insertStmt.setInt(2, value); // set the second param
insertStmt.executeUpdate();
您永远无法确定是否使用正则表达式阻止了所有可用的SQL语句。这是一种非常不稳定且容易出错的方法。我建议使用a或更好的a。您可以检查和查看准备好的报表 根据定义,这两种机制将保护您不受SQL注入的影响,因为它们不基于在执行的SQL中使用用户输入,除非您明确告诉它们。即使如此,它们也实现了SQL注入保护,这比使用正则表达式要好得多
希望我能帮忙 您永远无法确定是否使用正则表达式阻止了所有可用的SQL语句。这是一种非常不稳定且容易出错的方法。我建议使用a或更好的a。您可以检查和查看准备好的报表 根据定义,这两种机制将保护您不受SQL注入的影响,因为它们不基于在执行的SQL中使用用户输入,除非您明确告诉它们。即使如此,它们也实现了SQL注入保护,这比使用正则表达式要好得多
希望我能帮忙 您永远无法确定是否使用正则表达式阻止了所有可用的SQL语句。这是一种非常不稳定且容易出错的方法。我建议使用a或更好的a。您可以检查和查看准备好的报表 根据定义,这两种机制将保护您不受SQL注入的影响,因为它们不基于在执行的SQL中使用用户输入,除非您明确告诉它们。即使如此,它们也实现了SQL注入保护,这比使用正则表达式要好得多
希望我能帮忙 您永远无法确定是否使用正则表达式阻止了所有可用的SQL语句。这是一种非常不稳定且容易出错的方法。我建议使用a或更好的a。您可以检查和查看准备好的报表 根据定义,这两种机制将保护您不受SQL注入的影响,因为它们不基于在执行的SQL中使用用户输入,除非您明确告诉它们。即使如此,它们也实现了SQL注入保护,这比使用正则表达式要好得多
希望我能帮忙 想想看,像“插入”、“更新”和“删除”这样的词有多常见?如果您阻止了与模式匹配的字符,那么您就不会阻止单引号和双引号(因为您将它们包括在一个负字符类中)这些是使SQL注入成为可能的字符。想想看,“插入”、“更新”和“删除”这样的词有多常见?如果您阻止了与模式匹配的字符,那么您就不会阻止单引号和双引号(因为您将它们包括在负字符类中)这些是使SQL注入成为可能的字符。想想看,“插入”、“更新”和“删除”这样的词有多常见?如果您阻止了与模式匹配的字符,那么您就不会阻止单引号和双引号(因为您将它们包括在负字符类中)这些是使SQL注入成为可能的字符。想想看,“插入”、“更新”和“删除”这样的词有多常见?如果您阻止了与模式匹配的字符,那么您就不会阻止单引号和双引号(因为您将它们包括在负字符类中)正是这些特征使得SQL注入成为可能。