最直接的办法,就是在提交事件中不验证后台提交的数据protected void Application_BeginRequest(Object sender, EventArgs e)
    {
        if(this.Request.Url.ToString().IndexOf("http://www.xxxxxxx.com/admin/")==-1)
       {
          SqlChecker SqlChecker = new SqlChecker(this.Request, this.Response);
          //或 SqlChecker SqlChecker = new SqlChecker(this.Request,this.Response,safeUrl); 
          SqlChecker.Check();
        }
    } 

解决方案 »

  1.   

    扯淡的什么“防注入”。如果说文章里连有个select,或者有个单引号都不能录入了,这种扯淡的“防注入”也就是在csdn这类地方才会有广告市场。
      

  2.   

    你见过几个文章网站(内容管理系统)不允许有单引号、大括号、delete单词的?醒醒吧。“防sql注入”根本不是这种东西。再怎么防sql注入,你也得把单引号、分号、exec等等字符串录入数据库啊。
      

  3.   


    那要如何做安全呢?
    你连SQL参数这个东西都不知道……
    其实很简单, 不要拼接sql,   用上参数就好了。
      

  4.   

    这代码存在比sql注入危害更大。损失数据的代码能用吗?
      

  5.   


    那要如何做安全呢?
    你连SQL参数这个东西都不知道……
    其实很简单, 不要拼接sql,   用上参数就好了。我都用的参数,然后提交到存储过程来执行的。
      

  6.   


    那要如何做安全呢?
    你连SQL参数这个东西都不知道……
    其实很简单, 不要拼接sql,   用上参数就好了。我都用的参数,然后提交到存储过程来执行的。用了参数, 还怕什么SQL注入??!!
      

  7.   

    所谓的过滤技术都是坑爹的技术,数据库都帮你们实现了安全问题,你们非要自己做,拼接SQL真那么好??又有SQL注入,又有性能问题
      

  8.   

    话说用Linq to sql的话, 需要考虑 防注入么?
      

  9.   

    这种强行替换SQL关键字的方式 是极不可取的
    这个工具类有点坑爹 建议楼主舍弃
    防止SQL注入一般参数化查询可防止大部分SQL注入方式
      

  10.   

    参数化,就不用担心被sql注入了,防止xss攻击就好了
      

  11.   


    请问,还有那些是可能导致的呢,我目前都是参数化了。
    比如 你提交一个参数  var str = "DROP TABLE XXX";
    然后用一个查询:  var sql = "sp_execsql @str";
    这样就不能防止。