java 正则表达式防sql注入
时间: 2023-12-11 22:34:01 浏览: 42
Java正则表达式可以用于防止SQL注入攻击。以下是一个使用Java正则表达式防止SQL注入攻击的示例:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SQLInjection {
public static void main(String[] args) {
String input = "SELECT * FROM users WHERE username = 'admin' AND password = 'password' OR 1=1';";
String reg = "\\b(and|exec|insert|select|drop|grant|alter|delete|update|count|chr|mid|master|truncate|char|declare|or)\\b|(\\*|;|\\+|'|%)";
Pattern pattern = Pattern.compile(reg, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("SQL注入攻击已被检测到!");
} else {
System.out.println("未检测到SQL注入攻击。");
}
}
}
```
该示例使用正则表达式来检查输入字符串中是否包含SQL注入攻击的关键字。如果找到了任何一个关键字,则认为发生了SQL注入攻击。否则,认为输入是安全的。