Sql注入漏洞问题

看了传志播客的视频,了解到了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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值