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注入在开发代码中加入处理就可以了,
------解决方案--------------------学习了...
------解决方案--------------------單引號的問題,在前台應該做處理的。
------解决方案--------------------學習
------解决方案--------------------解决这个问题我是把传过来的值中的单引号全部变成两个单引号,这样能防止单引号注入的漏洞