前辈们帮帮我们晚辈。。怎么防止SQL注入
我们新手老被人玩。。可怜。。真的吓死人啊。。
SQL注入是通过URL的参数来做的吗?
如果只要控件URL参数年进行过滤就用防止吗?

解决方案 »

  1.   

    防止SQL注入方式非常多,比如
    你可以用存储过程,在存储过程里面就可以防止,
    还有你查询的时候用参数的方式传参数值,也可以防止,
    在一些查询条件中,你可以格式化一下查询字符,比如像等号什么的,都可以过滤一下,当然你得确实一般不会有等号的情况。
      

  2.   

    1.参数化SQL语句
    2.string str = "12'4''1125'111-25-1-251!%<!>12";
      str = str.Replace("'","").Replace("<","&lt;").Replace(">","&gt;");//.......
      

  3.   

    将你要传入的值参数话例子
    string sql = "select * from table1 where a=:a";OracleConnection conn = GetConnection();OracleCommand cmd = new OracleCommand(sql,conn);
    cmd.CommandType = CommandType.Text;
    OracleParameter para;
    para = new OracleParameter(":a",OracleType.VarChar,20);
    para.Value = "aaaaa";
    cmd.Parameters.Add(para);
    这是Oracle的,SQLSERVER的把所有的:a改成 @a所有的Oracle字样替换成Sql
      

  4.   

    写SQL用参数传递就可以了 就是5楼写的了
      

  5.   

    谢谢你们`。。前辈。。我们90后的就靠你们了多带带
    我们公司就我一个人`
    累死了`做了好几个网站就被SQL注入
    气死了
      

  6.   

    不要在数据访问类中直接用sql语气,使用存储过程会好很多,然后过滤参数的特殊字符
      

  7.   

    写一个类 实现IHttpModule 
    在这个类中去处理 
    1 判断url的参数 
    2 表单提交的值如果包含一些sql注入要用的关键字 就给用户提示
      

  8.   

    在Global.asax里Application_BeginRequest
    里屏蔽and .exec .insert .select .delete .update .count .* .chr .mid .master .truncate .char .declare
    其他参考
    http://topic.csdn.net/t/20061215/16/5233608.html
      

  9.   

    参数,存储过程,听说linq也可以
      

  10.   

    有两句代码非常有效
    如果参数为int型
    string sql = "select * from tb where [id]="+ int.Parse(Request["id"]);//非int则出错,转到错误页面
    如果是字符串类型
    string sql = "select * from tb where [name]='"+ Request["name"].Replace("'","''") +"'";经过这样处理后一般就无碍了
      

  11.   

    int.Parse(Request["id"])
    ==》
    int.Parse(Request["id"]).ToString()
      

  12.   

    楼主啊这个问题,希望你能够首先明白sql注入的原理然后再去防止这个事情的发生这样才能够对这个问题有个清醒的认识不要对一个问题,停留在表面认识上这样才能够进步sql注入这个问题,是没有快速而完全的解决方法的其实最好的方法,就是不要防注入只要程序写严谨了,数据类型验证准确了就没有问题了记住,来自浏览器的数据都要验证后才使用就对了不管是url还是form提交的,
      

  13.   

    相关详细情况,google一下即可记住:所有的防注入代码....都是没有认识到sql注入的本质的
      

  14.   

    防注入用SQL参数比较多
    paramters.AddValueWith("",  )
      

  15.   

    怎么使用sql注入攻击? 我只有盾牌防没有武器攻!