现在有一条登录的语句  
SELECT * FROM STATIC_USER where UserName =''我可以在页面用户名输入 a' and 1=1-- 可以查询出多条记录  但是登录根据 返回天数量判断是否存在用户名 即只有一条记录才能登录成功  请问一下 该怎么写啊

解决方案 »

  1.   

    declare @date datetime
    SELECT * FROM STATIC_USER where UserName ='' and @data =getdate()
      

  2.   

    string sql="select * from STATIC_USER where UserName=@username and 条件";
    sqlparameter
     
      

  3.   

    简单做法是将页面输入的内容中的单引号换成两个单引号,保险的做法是用参数传递的方式。
    SELECT * FROM STATIC_USER where UserName = @P_UserName
      

  4.   

    我的意思是 如果想不输入正确的用户名和密码可以直接进入系统如果Sql语句为
    SELECT * FROM STATIC_USER where UserName =''我可以在页面用户名输入 a' and 1=1--  就变成
    SELECT  * FROM STATIC_USER where UserName = 'a' or 1=1--'
    可以查询出多条记录 如果别人 登录是按照查询的结果只有一条记录才能进入系统我该在页面的用户名和密码输入什么 可以直接进入系统!
      

  5.   

    我的意思是 想模拟SQL、注入果想不输入正确的用户名和密码可以直接进入系统如果Sql语句为
    SELECT * FROM STATIC_USER where UserName =''我可以在页面用户名输入 a' and 1=1-- 就变成
    SELECT * FROM STATIC_USER where UserName = 'a' or 1=1--'
    可以查询出多条记录  如果别人 登录是按照查询的结果只有一条记录才能进入系统我该在页面的用户名和密码输入什么 可以直接进入系统!
      

  6.   

    输入不正确 也能进入系统?
    还只能通过sql查出来一条?
      

  7.   

    防止注入攻击
    第一步.使用ASP.NET请求验证.  
    第二步.约束输入.  
    第三步.对不安全的输出进行编码.  
    第四步.对SQL查询语句使用命令参数.  
    第五步.验证ASP.NET的出错信息没有泄漏至客户端.
      

  8.   

    LZ是想要不用密码就可以进入系统。可是这样查出来是多个用户,现在想要得到其中的一个用户,但又不能改前面的SQL语句:
    /Try
    a' and Password = (Select top 1 Password from STATIC_USER Whhere UserName='a' )--
    前题是你知道这个表中的密码字段名:Password
    这样应该是唯一的,否则正常也不能登录了。
      

  9.   

    这个sql注入式攻击的问题,用参数或者过滤内容就行了
      

  10.   

    写代码是急不来的 别急躁新群 DotNet Programmer 群号 112850311
    本群新开,欢迎dotnet程序员加入,我们致力于营造一个好的学习交流氛围,不管你是高手还是菜鸟,只要你虚心好学,我们都诚挚的欢迎您。
      

  11.   


    应该是这样吧:
    a' and Password = (Select top 1 Password from STATIC_USER )--