整站如何防止SQL攻擊_.Net教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:總結(jié).NET開發(fā)中ADO.NET的應(yīng)用一、DataTable DataTable表示內(nèi)存中數(shù)據(jù)的一個表,它完全是在內(nèi)存中的一個獨立存在,包含了這張表的全部信息。DataTable可以是從通過連接從數(shù)據(jù)庫中讀取出來形成的一個表,一旦將內(nèi)容讀到DataTable中,此DataTable就可以跟數(shù)據(jù)源斷開而獨立存在;也可以是完
asp.net網(wǎng)站防止SQL注入攻擊,通常的辦法是每個文件都修改加入過濾代碼,這樣很麻煩,下面介紹一種辦法,可以從整個網(wǎng)站防止注入。只要做到以下三點,網(wǎng)站就會比較安全了而且維護也簡單。
一、數(shù)據(jù)驗證類
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文件中,在下面增加一個標(biāo)簽,如下:
| <appSettings> <add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode- USzip" /> </appSettings> |
其中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"); } } |
以后需要修改的時候大家只修改以上三個文件就可以了,整個系統(tǒng)的維護效率將會提高,當(dāng)然你也可以根據(jù)自己的需要增加其它的變量參數(shù)和數(shù)據(jù)類型等等。
分享:關(guān)于Gridview的多種使用方法總結(jié)asp.net中 Gridview的多種使用方法總結(jié),具體如下面 截圖,并包括詳細源代碼注釋,需要的請下載。 1:在Gridview中無須編寫后臺代碼,直接實現(xiàn)增除刪改 2:在Gridview中添加新記錄 3:在Gridview中實現(xiàn)編輯和更新操作 4:在Gridview中實現(xiàn)一次性更新所有記錄
相關(guān).Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 基于自定義Unity生存期模型PerCallContextLifeTimeManager的問題
- dropdownlist,datagrid數(shù)據(jù)綁定簡單實現(xiàn)
- 使用asp.net的pageDataSource中時索引問題解決方法
- 一個不被flash、select、activex遮擋的、跨frame的無限分級菜單
- 談asp.net會話狀態(tài)
- asp.net中使用repeater和PageDataSource搭配實現(xiàn)分頁代碼
- ASP.NET MVC是怎樣實現(xiàn)自己的視圖引擎的
- ASP.NET 2.0發(fā)送電子郵件中存在的問題
- 解讀一個簡單程序的反編譯
- 給初學(xué).net的您幾點建議
- 相關(guān)鏈接:
- 教程說明:
.Net教程-整站如何防止SQL攻擊
。