读书人

百思不得其解?asp.net中SQL语句?解决

发布时间: 2012-02-16 21:30:36 作者: rapoo

百思不得其解?asp.net中SQL语句?
登录代码:
......
sqlcmd.CommandText = "SELECT [UserId],[UserLevle] FROM [UserInfo] WHERE ([UserId]='" + TextBox1.Text + "' and [UserPwd]='" + TextBox2.Text + "')"
Dim sqldr As SqlDataReader = sqlcmd.ExecuteReader()

If sqldr.Read() Then
If sqldr.Item(1).ToString().Equals("1") Then
Session.Add("UserId", TextBox1.Text)
Response.Redirect("index.aspx")
Else
Session.Add("UserLevle", sqldr.Item(1).ToString())
Response.Redirect("goodsmang.aspx")
end if
.......
问题:
要通过验证userid,userpwd两项登录,但select语句中并没有选择userpwd,为什么还能正常登录?
请各位高手帮忙看看,谢了!

[解决办法]
and [UserPwd]='" + TextBox2.Text

这里检查了用户密码,就可以正常登录了。
[解决办法]
用户密码只需在 where 中检验与数据库中的相符就OK了,不必出现在 select 列表中。
[解决办法]
不是看select 了什么。而是看后面的条件符合不符合。
后面同时检查了用户名和密码。只要符合条件就可以正常登录。
[解决办法]
select语句中选择什么都行,*也可以,都不碍事,
只要限制,where 条件是userId=? and userPwd=?就可以正常登录了

[解决办法]
Select后面的字段是需要从数据库中取出的字段,你如果不想获得userpwd,当然就不需要select userpwd了啊。
[解决办法]
SQl中的Select 语句非常强大,也非常复杂,建议仔细去学习它。

[解决办法]
如果用户在TextBox1里面输入“1' or '1'='1”,你们觉得结果会怎么样啊?

是不是就构造了这样一个sql语句:
select userid,userlevel from user where username='1' or '1'='1' and password='随便写点什么'

这个条件始终为真,则可以登录。

[解决办法]
汗水...验证是在where子句啊,select后面是要显示的内容-0-PS:这样写确实存在SQL注入问题--0--
[解决办法]
用户密码只需在 where 中检验与数据库中的相符就OK了,不必出现在 select 列表中
[解决办法]
在 where 条件后判断了 密码就可以

读书人网 >asp.net

热点推荐