整站如何防止SQL攻擊_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:總結.NET開發中ADO.NET的應用
      一、DataTable DataTable表示內存中數據的一個表,它完全是在內存中的一個獨立存在,包含了這張表的全部信息。DataTable可以是從通過連接從數據庫中讀取出來形成的一個表,一旦將內容讀到DataTable中,此DataTable就可以跟數據源斷開而獨立存在;也可以是完

          asp.net網站防止SQL注入攻擊,通常的辦法是每個文件都修改加入過濾代碼,這樣很麻煩,下面介紹一種辦法,可以從整個網站防止注入。 
          只要做到以下三點,網站就會比較安全了而且維護也簡單。  
          一、數據驗證類  
          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文件中,在下面增加一個標簽,如下: 
      <appSettings> 
          <add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode-
      USzip" /> 
      </appSettings>

          其中key是后面的值為“OrderId-int32”等,其中“-”前面表示參數的名稱比如:OrderId,后面的int32表示數據類型。 
          三、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"); 
          } 
      }

          以后需要修改的時候大家只修改以上三個文件就可以了,整個系統的維護效率將會提高,當然你也可以根據自己的需要增加其它的變量參數和數據類型等等。

      分享:關于Gridview的多種使用方法總結
      asp.net中 Gridview的多種使用方法總結,具體如下面 截圖,并包括詳細源代碼注釋,需要的請下載。 1:在Gridview中無須編寫后臺代碼,直接實現增除刪改 2:在Gridview中添加新記錄 3:在Gridview中實現編輯和更新操作 4:在Gridview中實現一次性更新所有記錄

      來源:模板無憂//所屬分類:.Net教程/更新時間:2010-05-20
      相關.Net教程