| <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>
 
 (编辑:锡盟站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |