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

首頁 > 開發 > 綜合 > 正文

C# 檢查字符串,防SQL注入攻擊

2024-07-21 02:30:04
字體:
來源:轉載
供稿:網友

這些天,csdn上討論sql注入攻擊似乎是如火如荼啊...我也來參合一下..
如下,checkparams函數,接收參數任意,如參數中有字符串,則對字符串進行檢查,如參數中有集合(如array之類,總之是實現了icollection的),則對集合中的字符串元素進行檢查.
大家可根據具體情況來定要過濾的字符,我這個例子里暫定為=號和'號,實際上我個人認為,過濾了這兩個,似乎要進行sql注入就已經比較困難了,當然,我對sql是菜鳥,歡迎高手指正,謝謝.我的郵箱(msn): [email protected]


bool checkparams(params object[] args)
{
string[] lawlesses={"=","'"};
if(lawlesses==null||lawlesses.length<=0)return true;
//構造正則表達式,例:lawlesses是=號和'號,則正則表達式為 .*[=}'].* (正則表達式相關內容請見msdn)
//另外,由于我是想做通用而且容易修改的函數,所以多了一步由字符數組到正則表達式,實際使用中,直接寫正則表達式亦可;
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)//如果是一個集合,則檢查集合內元素是否字符串,是字符串,就進行檢查
{
foreach(object obj in (icollection)arg)
{
if(obj is string)
{
if(regex.matches(obj.tostring(),str_regex).count>0)
return false;
}
}
}
}
return true;
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 内黄县| 新蔡县| 屏山县| 锡林浩特市| 金寨县| 卓资县| 略阳县| 德庆县| 红安县| 东方市| 长春市| 大丰市| 临漳县| 炉霍县| 新津县| 漠河县| 永嘉县| 五家渠市| 九龙县| 若羌县| 德兴市| 和静县| 博乐市| 固原市| 邮箱| 三明市| 马边| 呼伦贝尔市| 临邑县| 南溪县| 临猗县| 河津市| 天门市| 三河市| 青河县| 故城县| 湾仔区| 勐海县| 察哈| 老河口市| 西林县|