Java中如何去掉字符串中的非法字符(预防SQL注入)
2012-05-09 11:52
731 查看
/** * 防止SQL注入,校验字符串参数是否合法 * @param s * @return */ public static boolean isValid(String s) { if (s.isEmpty()|| s.length() > 10000) { return false; } s = s.toLowerCase(); String cs = "'|and|\"|exec|insert|select|delete|update|count|*|%|=|chr|mid|master|truncate|char|declare|; |or|-|+|,"; String[] csArray = cs.split("\\|"); //循环校验是否含有非法字符串 for(int i=0;i<csArray.length;i++){ if(s.indexOf(csArray[i])!=-1){ return false; } } return true; }
这里面有一个问题需要注意一下:
String[] csArray = cs.split("\\|");为什么这里需要使用\\,原因是split()中的参数是正则表达式,因为\和|都是正则的元字符需要进行转义,\\代表\,所以\|需要改写为\\|
相关文章推荐
- 在java中如何用键盘输入一个数,字符,字符串 (转)
- Java中如何从一个字符串中删除指定字符
- 在java中如何用键盘输入一个数,字符,字符串
- java中去掉字符串中的空格及空白字符
- JAVA String 如何去掉指定字符
- java中如何从字符串中删选中文字符(GBK编码和UTF-8编码)
- [Java]如何改变字符串中的字符
- Python sql注入 过滤字符串的非法字符
- 在java中如何用键盘输入一个数,字符,字符串
- java中字符串如何去除最后一个字符
- 报表中如何去掉字符串中的首字符或末字符
- 假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?
- java如何在文件中读取一个字符串并创建以这个字符为名字的类的对象
- java中如何忽略字符串中的转义字符--转载
- 在java中如何用键盘输入一个数,字符,字符串
- java中如何计算一个字符串的byte长度(一个汉字多少字符)
- java实现如何在字符串中找到第一个不重复的字符
- Java中如何去掉字符串中的空格
- java截取指定字符串中的某段字符如何实现?
- 如何预防SQL注入,XSS漏洞(spring,java)