日期:2014-05-19  浏览次数:20489 次

update 是否存在漏洞?
update   userss   set   password   =   ' "+checkpassword1+ " '     where   userid= ' "   +   userid+   " ' "

这个语句是否有漏洞?在特定情况下,把整个表的密码全部更改?

------解决方案--------------------
祇更改對應userid的password
------解决方案--------------------
update userss set password = ' "+checkpassword1+ " ' where userid= ' " + userid+ " ' "

-----------
應該是不會的,你的update後面有條件的,應該只會更新滿足條件的數據.
------解决方案--------------------
没看出这个语句会存在漏洞啊?
在特定情况下? ---是指什么情况啊?
------解决方案--------------------
sql注入漏洞
------解决方案--------------------
也可能导致语法错误

楼主这个语句应该是程序中拼sql语句, 因为 '不匹配, 所以如果没有检查拼进去的值的话, 就会出现漏洞
------解决方案--------------------
update userss set password = ' "+checkpassword1+ " ' where userid= ' " + userid+ " ' "

----如果
checkpassword1=a ' --
userid=aaa

---整个语句
update userss set password = 'a ' -- ' where userid= 'aaa '

--好像有漏洞


------解决方案--------------------
以上全部密码改成a

------解决方案--------------------
----如果
checkpassword1= ' --

就改成空了


------解决方案--------------------
?
------解决方案--------------------
引号也不配对呀,数目不对.
------解决方案--------------------
原來指這個,沒想到。

的確是有注入的漏洞。

如果是在C#中,可以采用參數的方法,就可以避免這種問題。
------解决方案--------------------
sql注入 那里都会存在,如果就这语句应没有,

防sql注入在开发代码中加入处理就可以了,
------解决方案--------------------
学习了...
------解决方案--------------------
單引號的問題,在前台應該做處理的。

------解决方案--------------------
學習
------解决方案--------------------
解决这个问题我是把传过来的值中的单引号全部变成两个单引号,这样能防止单引号注入的漏洞