国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 吉木乃县| 台山市| 龙川县| 定西市| 永善县| 巴中市| 湄潭县| 奉化市| 淮北市| 龙江县| 新巴尔虎左旗| 田阳县| 安福县| 乳源| 鹤山市| 思茅市| 乌拉特前旗| 宜宾县| 尚义县| 绥中县| 广丰县| 鹤壁市| 蒙自县| 江永县| 陆川县| 六安市| 宁城县| 建昌县| 建始县| 平阳县| 江油市| 哈尔滨市| 离岛区| 红桥区| 行唐县| 屏东县| 玉门市| 九龙城区| 库车县| 海口市| 寿阳县|