刚学开发ASP.NET,请教高手一个问题,要防范SQL 注入,必须在每个可能接收参数的页面里面去进行注入关键字的验证吗?

解决方案 »

  1.   

    尽量不用拼sql的方法去操作数据库.
    应该用参数化的方法!
      

  2.   

    一是写一个通用类,定义一个方法,对所有的输入过滤危险字符。
    二是利用SqlParameter可以避免注入,
    比如"select * from table1 where username=@username"
     SqlParameter pram = new SqlParameter("@username", SqlDbType.NVarChar, 50);
                pram.Value = userName;
      

  3.   

    可以在Global.aspx或者一个HttpMoule中写一个检测含SQL攻击参数的代码,从而防止SQL攻击。具体代码请参考:http://www.zgkw.cn/forums/forums/225/ShowForum.aspx
      

  4.   

    抱歉,上面地址有误,应该是
     
    一招搞定SQL注入http://www.zgkw.cn/forums/forums/thread/73963.aspx
      

  5.   

    生成xml应该就 比较不怕勒!sql2005支持这样写 for xml auto,再转换一下就比较安全!
      

  6.   

    用存储过程呢
    就不担心SQL注入了
      

  7.   

    用存储过程,用的时候用add方法添加参数