所谓的sql注入,就是通过输入请求,把sql命令插入到sql语句中,已达到欺骗服务器的目的。
假设服务器端要获取玩家的数据,可能使用如下的sql语句
string sql = "select *from player where id = " + id ;
当然,在正常情况下该语句能够完成读取数据的工作,但如果一名玩家恶意注册了类似的
"xiaoming;delete *form player"
这样的名称,这条sql语句将会变成下面两条语句。
select *from player where id = xiaoming ;delete *form player ;
执行了这样的语句之后,player表中的数据将会全部清空,后果不堪设想。如果把含有逗号、分号等特殊字符判定为不安全字符,在拼装sql语句前进行安全检测,就可以有效的防止sql注入
代码如下:
//判定安全字符
public bool IsSafeStr (string str)
{
return !Regex.IsMatch (str ,@"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
}
网友评论