您的位置:首页 > 编程语言 > Java开发

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()中的参数是正则表达式,因为\和|都是正则的元字符需要进行转义,\\代表\,所以\|需要改写为\\|
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: