網(wǎng)站安全:整站如何防止SQL注入方式入侵
防止SQL注入,通常一個(gè)一個(gè)文件修改不僅麻煩而且還有漏掉的危險(xiǎn),下面我說(shuō)一下如何從整個(gè)系統(tǒng)防止注入。
做到以下三步,相信你的程序就會(huì)比較安全了,而且對(duì)整個(gè)網(wǎng)站的維護(hù)也將變的簡(jiǎn)單。
一、數(shù)據(jù)驗(yàn)證類
|
parameterCheck.cs public class parameterCheck{ public static bool isEmail(string emailString){ return System.Text.RegularExpressions.Regex.IsMatch(emailString, "['\\w_-]+(\\. ['\\w_-]+)*@['\\w_-]+(\\.['\\w_-]+)*\\.[a-zA-Z]{2,4}"); } public static bool isInt(string intString){ return System.Text.RegularExpressions.Regex.IsMatch(intString ,"^(\\d{5}-\\d{4})| (\\d{5})$"); } public static bool isUSZip(string zipString){ return System.Text.RegularExpressions.Regex.IsMatch(zipString ,"^-[0-9]+$|^[0-9] +$"); } |
二、Web.config
在你的Web.config文件中,在下面增加一個(gè)標(biāo)簽,如下:
|
|
其中key是后面的值為“OrderId-int32”等,其中“-”前面表示參數(shù)的名稱比如:OrderId,后面的int32表示數(shù)據(jù)類型。
三、Global.asax
在Global.asax中增加下面一段:
|
protected void Application_BeginRequest(Object sender, EventArgs e){ String[] safeParameters = System.Configuration.ConfigurationSettings.AppSettings ["safeParameters"].ToString().Split(','); for(int i= 0 ;i < safeParameters.Length; i++){ String parameterName = safeParameters[i].Split('-')[0]; String parameterType = safeParameters[i].Split('-')[1]; isValidParameter(parameterName, parameterType); } } public void isValidParameter(string parameterName, string parameterType){ string parameterValue = Request.QueryString[parameterName]; if(parameterValue == null) return; if(parameterType.Equals("int32")){ if(!parameterCheck.isInt(parameterValue)) Response.Redirect("parameterError.aspx"); } else if (parameterType.Equals("double")){ if(!parameterCheck.isDouble(parameterValue)) Response.Redirect("parameterError.aspx"); } else if (parameterType.Equals("USzip")){ if(!parameterCheck.isUSZip(parameterValue)) Response.Redirect("parameterError.aspx"); } else if (parameterType.Equals("email")){ if(!parameterCheck.isEmail(parameterValue)) Response.Redirect("parameterError.aspx"); } |
以后需要修改的時(shí)候我們只需要修改以上三個(gè)文件,對(duì)整個(gè)系統(tǒng)的維護(hù)將會(huì)大大提高效率,當(dāng)然你可以根據(jù)自己的需要增加其它的變量參數(shù)和數(shù)據(jù)類型。




















