| 
                          <script language="C#" runat="server"><!--      protected void Application_BeginRequest(Object sender, EventArgs e)          {              StartProcessRequest();          } 
 
  /// <summary>  /// 处理用户提交的请求  /// </summary>  private void StartProcessRequest()  {  try  {  string getkeys = ""; 
  if (System.Web.HttpContext.Current.Request.QueryString != null)  { 
  for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)  {  getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];  if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))  {  System.Web.HttpContext.Current.Response.Write("Get,出现错误,包含非法字符串");  System.Web.HttpContext.Current.Response.End();  }  }  }  if (System.Web.HttpContext.Current.Request.Form != null)  {  for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++)  {  getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];  if (getkeys == "__VIEWSTATE") continue;  if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))  {  System.Web.HttpContext.Current.Response.Write("Post,出现错误,包含非法字符串");  System.Web.HttpContext.Current.Response.End();  }  }  }              if(System.Web.HttpContext.Current.Request.Cookies!=null)              {               for (int i = 0; i < System.Web.HttpContext.Current.Request.Cookies.Count; i++)  {  getkeys = System.Web.HttpContext.Current.Request.Cookies.Keys[i];  if (getkeys == "__VIEWSTATE") continue;  if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Cookies[getkeys].Value))  {  System.Web.HttpContext.Current.Response.Write("Cookies,出现错误,包含非法字符串");  System.Web.HttpContext.Current.Response.End();  }  }              } 
  }  catch  {  // 错误处理: 处理用户提交信息!  }  }  /// <summary>  /// 分析用户请求是否正常  /// </summary>  /// <param>传入用户提交数据 </param>  /// <returns>返回是否含有SQL注入式攻击代码 </returns>  private bool ProcessSqlStr(string Str)  {  bool ReturnValue = true;  try  {  if (Str.Trim() != "")  {                  string SqlStr = "select¦insert¦delete¦update¦declare¦sysobjects¦syscolumns¦cast¦truncate¦master¦mid¦exec"; 
                  string[] anySqlStr = SqlStr.Split('¦');  foreach (string ss in anySqlStr)  {  if (Str.ToLower().IndexOf(ss) >= 0)  {  ReturnValue = false;  break;  }  }  }  }  catch  {  ReturnValue = false;  }  return ReturnValue;  } 
  // --></script>
                          (编辑:站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |