首页  ·  知识 ·  云计算
ASP.net防SQL注入
佚名  http://www.cnblogs.com/yiki/  综合  编辑:dezai  图片来源:网络
一,验证方法 /**//// summary ///SQL注入过滤 /// /summary /// param name="InText"&g

一,验证方法

 /**////


  ///SQL注入过滤
  ///

  /// 要过滤的字符串
  /// 如果参数存在不安全字符,则返回true
  public static bool SqlFilter2(string InText)
  {
   string word="and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join";
   if(InText==null)
    return false;
   foreach(string i in word.Split('|'))
   {
    if((InText.ToLower().IndexOf(i+" ")>-1)||(InText.ToLower().IndexOf(" "+i)>-1))
    {
     return true;
    }
   }
   return false;
  }

二,Global.asax 事件

  /**////


  /// 当有数据时交时,触发事件
  ///

  ///
  ///
  protected void Application_BeginRequest(Object sender, EventArgs e)
  {
   //遍历Post参数,隐藏域除外
   foreach(string i in this.Request.Form)
   {
    if(i=="__VIEWSTATE")continue;
    this.goErr(this.Request.Form[i].ToString());   
   }
   //遍历Get参数。
   foreach(string i in this.Request.QueryString)
   {
    this.goErr(this.Request.QueryString[i].ToString());   
   }
  }

三,Global中的一个方法

  /**////


  /// 校验参数是否存在SQL字符
  ///

  ///
  private void goErr(string tm)
  {
   if(WLCW.Extend.CValidity.SqlFilter2(tm))
    this.Response.Redirect("/error.html");
  }

本文作者:佚名 来源:http://www.cnblogs.com/yiki/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读