作业中要求命令参数不能使用拼接字符串方式,避免注入式攻击
这是什么意思呢,请指点下,谢谢!!

解决方案 »

  1.   

    用@参数
    例:select * from XXX where name=@Name
    ...
    cmd.Parameters.AddWithValue("@Name",值);
    ...
      

  2.   

    原意: "select * from XXX where name = 'tom'"拼接: string name = "tom";
          "select * from XXX where id = '" + name + "'";注入: string name = "tom' delete from XXX --";
          "select * from XXX where id = '" + name + "'";
          "select * from XXX where name = 'tom' delete from XXX --'"参数: 见沙发 将整个"tom' delete from XXX --"作为参数值 而不是sql语句的一部分
      

  3.   

    之前我自己写的例子是用的id 然后看到沙发 就统一改成了name了 但是有的id没有改过来 凡是见到id的地方都应该是name~ 应该不影响理解吧