防止SQL注入


所谓sql注入

就是通过输入请求,把sql命令插入到sql语句中

以达到欺骗服务器执行而已sql命令的目的


如使用

string sql = “Select * from player where id =” + id;

此时可以正常完成数据的读取工作

如果使用

“xiaoming;delete * from player;”的名字

此语句则变成两条语句

Select * from player where id = xiaoming; delete * from player;

执行完此条语句后,player表的数据将被全部删除。


要防止sql注入

就得在拼装sql语句前,对用户输入的字符串进行安全性检测


下面函数,使用正则表达式编写判定安全字符串的方法

把含有“-;/()[]{}%@*”这些特殊符号的字符串判定为不安全字符串

public bool IsSafeStr(string str){

    return !Regex.IsMatch(str,@”[-|;|,|/|(|)|[|]|}|{|%|@|*|!|’]”);

}