update userss set password = '"+checkpassword1+"'  where userid='" + userid+ "'"这个语句是否有漏洞?在特定情况下,把整个表的密码全部更改?

解决方案 »

  1.   

    update userss set password = '"+checkpassword1+"'  where userid='" + userid+ "'"-----------
    應該是不會的,你的update後面有條件的,應該只會更新滿足條件的數據.
      

  2.   

    也可能导致语法错误楼主这个语句应该是程序中拼sql语句, 因为'不匹配, 所以如果没有检查拼进去的值的话, 就会出现漏洞
      

  3.   

    update userss set password = '"+checkpassword1+"'  where userid='" + userid+ "'"----如果
    checkpassword1=a' --
    userid=aaa---整个语句
    update userss set password = 'a' --'  where userid='aaa'--好像有漏洞
      

  4.   

    ----如果
    checkpassword1=' --就改成空了
      

  5.   

    sql注入 那里都会存在,如果就这语句应没有,防sql注入在开发代码中加入处理就可以了,
      

  6.   

    update userss set password = '"+checkpassword1+"'  where userid='" + userid+ "'最后多了一个“"”
      

  7.   

    update userss set password = '"+checkpassword1+"' where userid='" + userid+ "'"
    ---------
    如果userid的值为
    asdfd or 1>0
    时就出问题了.
      

  8.   

    sdhylj(青锋) ( ) 信誉:100  2007-07-30 11:41:30  得分: 0  
     
     
       update userss set password = '"+checkpassword1+"' where userid='" + userid+ "'"
    ---------
    如果userid的值为
    asdfd or 1>0
    时就出问题了.
      
    --------------------------------------------------------
    在 userid做文章应该是userid=
    asdfd' or '1'='1要把引号配好对
      

  9.   

    是否可以考虑,一般情况不要用从客户端获取的东西来直接进行update,delete这样的操作。
    同时去掉 "单引号" ,这些接收的参数先 查询一下,如:
    select userid,userpassword from userss where userid='" + userid+ "'"
    然后把查询的结果 放入变量,和从客户端接收的参数比较判断以后,再做修改,否则就忽略并记录。
      

  10.   

    update userss set password = '"+checkpassword1+"'  where userid='" + userid+ "'"如果
    checkpassword1,userid
    是直接接收用户输入的
    用户可以使userid='" + userid+ "'"这个等式恒成立等于1
    所以
    在处理用户数据的时候
    需要防止SQL注入
    屏蔽一些特殊字符
    网上方法很多
    自己去看看
      

  11.   

    前台怎样处理?去掉单引号?是不是用preparedStatement预处理可以防注入?
      

  12.   

    .....where userid=xxx and password=xxx
      

  13.   

    update userss set password = '"+checkpassword1+"'  where userid='" + userid+ "'"当userid = ' aa or 1=1 '
      

  14.   

    存在SQL注入漏洞具体表现为当 WHERE条件中包含OR时,语句将改变意义既:当userid的值为 ' or 1=1 or 1='时那么这个SQL语句就变成
    update userss set password = ''  where userid='' or 1=1 or 1=''那么这时,就会把所有的用户密码都更成了你只定的密码