国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

在C#中防止SQL注入的方法

2024-09-07 22:12:17
字體:
供稿:網(wǎng)友

為了防止用戶通過傳遞非法字符而達(dá)到SQL注入攻擊的目的,我們必須想辦法過濾掉用戶輸入的非法字符,下面給出在C#中實(shí)現(xiàn)過濾非法字符的源代碼,供大家參考。

在這個(gè)例子里僅僅對等號=和單引號'進(jìn)行檢查和過濾,其它非法字符可以用同樣的方法來實(shí)現(xiàn)。

首先定義一個(gè)檢查函數(shù)

bool CheckParams(params object[] args)
{
  string[] Lawlesses={"=","'"};
  if(Lawlesses==null||Lawlesses.Length<=0)return true;
  //構(gòu)造正則表達(dá)式,例:Lawlesses是=號和'號,則正則表達(dá)式為 .*[=}'].*
 //另外,由于我是想做通用而且容易修改的函數(shù),所以多了一步由字符數(shù)組到正則表達(dá)式,實(shí)際使用中,直接 寫正則表達(dá)式亦可;
 string str_Regex=".*[";
 for(int i=0;i< Lawlesses.Length-1;i++)
     str_Regex+=Lawlesses[i]+"|";
 str_Regex+=Lawlesses[Lawlesses.Length-1]+"].*";
//
 foreach(object arg in args)
 {
     if(arg is string)//如果是字符串,直接檢查
     {
         if(Regex.Matches(arg.ToString(),str_Regex).Count>0)
             return false;
     }
   else if(arg is ICollection)//如果是一個(gè)集合,則檢查集合內(nèi)元素是否字符串,是字符串,就進(jìn)行檢查
    {
       foreach(object obj in (ICollection)arg)
       {
          if(obj is string)
          {
             if(Regex.Matches(obj.ToString(),str_Regex).Count>0)
                  return false;
           }
     }
   }
}
return true;
}

我們用這個(gè)函數(shù)來檢查傳入的地址中是否含有非法字符即可。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蓬安县| 中方县| 灌南县| 四会市| 安化县| 绥芬河市| 于都县| 衡南县| 金门县| 郓城县| 兴和县| 商都县| 涞水县| 阿勒泰市| 通辽市| 泰和县| 德江县| 奉化市| 遂溪县| 饶河县| 双鸭山市| 湛江市| 思南县| 扎鲁特旗| 松滋市| 红河县| 宾阳县| 马鞍山市| 肥城市| 稻城县| 防城港市| 都匀市| 临汾市| 大石桥市| 读书| 凉山| 土默特右旗| 邻水| 罗田县| 来凤县| 隆回县|