写了一个防SQL注入的类,大家看看效果如何!
public sealed Class CleanString
{
public static string InputText(string inputString,int maxLength)
{
StringBuilder retVal=new StringBuilder();//构造临时字符串数组
if((inputString!=null)&&(inputString!=string.Empty))
//上面一句大家看看可否写成象下面这样?
//if(inputString.trim()!=null)
{
inputString=inputString.Trim();//去掉输入字符两端空格
if(inputString.Length>maxLength)//在前台显示一定的字符数
{
inputString.SubString(0,maxLegth);
}
for(int i=0;i<inputString.Length;i++)
{
switch(inputString[i])
{
case'"':retVal.Append(""");break;
case'<':retVal.Append("<");break;
case'>':retVal.Append(">");break;
default:retVal.Append(inputString[i]);break;
}
}
retVal.Replace(""," ");
}
return retVal.Tostring();
}
}
应用如下:
webForm上添一textBox1,textBox2
textBox2.text=CleanString.InputText(TextBox1.text,TextBox1.Text.Length)
在DB中应用如下:
string cmdText="insert into Employee(Company) values('"
+CleanString.InputText(textBox1.Text,textBox1.Text.Length)+"')";
...
sqlCommand myCommand=new SqlCommand(cmdText,myConnection);
myConnection.open();
myCommand.ExecuteNonQuery();
...