使用SqlParameter就可以防止Sql注入式攻击,而且不需要屏蔽特殊字符

解决方案 »

  1.   

    同意楼上,另外Replace("'","''");也不会单引号后成倍增加,它是SQL的转义字符而已,就好比.net中的"\n",是一个字符;
    可以这样
    public override Text 
      {
         get
         {
            return base.Text.Replace("'","''");
         }
         set
         {
           base.Text = value.Replace("''","'");     }
      }
      

  2.   

    用SqlParameter  或者是存储过程
      

  3.   

    参看微软的安全代码文档
    用参数化SQL语句,不可能出现注入式攻击的
      

  4.   

    Eddie005(♂) 暴赱 『零零伍』 (︶﹏︶) 
    *********************************
    没有试验,感觉很巧妙
      

  5.   

    To:Eddie005(♂) 暴赱 『零零伍』 (︶﹏︶) 你的方法我试过,但会在用户改变单引号的内容之后,单引号成倍增加
      

  6.   

    别外我想查看一下system.web.dll这个文件中textbox的写法,我学得有问题,不知这个文件能否显示源代码
      

  7.   

    using ado.net,it is easy
      

  8.   

    也可以使用nhibernate,在其中使用Expression
      

  9.   

    To:hel(抵制日货,从我做起) 不明白你说的,具体怎么做
      

  10.   

    好像你是直接在操纵SQL语句,这样在C#很是麻烦,因此可以使用orm解决方案,ORM解决方案中
    有一产品叫NHibernate,很不错,可以试试。对你有帮助。
      

  11.   

    return base.Text.Replace("'","'");替换成全角的' 或者干脆替换成  空 
      

  12.   

    return base.Text.Replace("","");
       就這麽簡單啊!