Sql注入漏洞问题

来源:互联网 发布:s7200plc密码破解软件 编辑:程序博客网 时间:2024/06/04 19:40

看了传志播客的视频,了解到了SQL的漏洞注入问题。在这里记录一下。

<pre>cmd.CommandText = @"select count(*)" from UserInfo where UserName = '"+txtUserName.Text+"'and UserPwd = '"+txtPwd.Text+"'";<code>

这样写其实是存在SQL注入漏洞问题的,在登陆界面输入a’ or x=x – ,然后再输入任意密码就能成功登陆。因为,在sql语句中–是注释符会注释掉and后面的语句,然后where后面的语句就变成了:

where 'a'or x=x--后面全被注释掉

x=x在sql中结果恒为真,所以不管输入用户名和密码正确与否都能登陆,在以后编写代码的时候一定要注意这个问题。

而正确的写法,应该是这样的

<pre>cmd.CommandText = @"select count(*)fro UserInfo where UserName=@UserName and UserPwd=@UserPwd";//使用了参数之后,怎样给参数赋值。cmd.Parameters.Add("@UserName",txtUserName.Text);cmd.Parameters.Add("@UserPwd",txtPwd.Text);//陷阱:当参数值为0的,会把它SqlDbType//用下面这个方法更保险。cmd.Parameters.AddWithValue();<code>
0 0
原创粉丝点击