关于sql 注入 一点拙解

我做的学生信息管理系统的界面

 

有两个textbox 两个button

 

两个文本框的名字分别是:UserName,UserPassword,

在数据库中分别对应两列:LoginUserName,LoginUserPassword

在登录验证时,我们一般的验证语句是:

select * from LoginInfo where LoginUserName='user001' and LoginUserPassword='1234'

在代码中的表现语句为:

Select * from LoginInfo where LoginUserName=”+UserName.text+” and LoginUserPassword=”+UserPassword.text+”

在验证时,文本框中的内容是作为验证串的一部分的,所以验证串我们是可以自己改变的!

那么我们就可以在第一个文本框中这样输入:aor LoginUserName <> a (此处红色”与上面的UserName.text对应起来看)

同样第二个文本框中的内容我们也可以这样输入:b or LoginUserPassword <> b(此处红色”与上面的UserPassword.text对应起来看)

 

通过上面的验证就可以保证输入的验证字符串是正确的,并可以保证返回的是true

这样再点登录按钮时,即使不知用户名和密码也可以登录了

―――――――――――――――――――――――――――――――――――――――

如果是用户名和密码分开验证那么它的验证串一般这样写:

Select * from LoginInfo where LoginUserName=’”+UserName.text+”’”

这样我们就不知道密码了,但我们可以通过这样的方式来在数据库中增加一条记录:

UserName这个文本框中这样输:a'; insert into Info.LoginInfo values('uservvv','1234');

 

这样构成的整体语句为:SELECT * FROM Info.LoginInfo WHERE LoginUserName='a'; insert into Info.LoginInfo values('uservvv','1234');就可以在数据库中插入一条用户记录,以后就可以用这个用户和密码登录了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值