关于页面登陆的简单问题。

swalp 2010-01-27 03:17:32
我做了一个简单的登陆界面上面就是两个文本框。用户名,密码。验证用户名密码的部分如下:

public DataSet CheckLogin( string strUserName,string strPassword)
{
SqlConnection conn = Conn();
conn.Open();
string strStaffName = "'" + strUserName + "'";
string strStaffPsw = "'" + strPassword + "'";
string strSql = "select UserID,UPassword,UserName,GroupID,InputID from CompanyStaff Where UserName = " + strStaffName + " and UPassword =" + strStaffPsw + "";
SqlDataAdapter dt = new SqlDataAdapter(strSql,conn);
DataSet ds = new DataSet();
dt.Fill(ds);
conn.Close();
return ds;
}


if (password == strPassword)
{
if (inputID == "0")
{
Response.Redirect("Input.aspx");
}
else
{
Response.Redirect("CustomerUser.aspx");
}
}

怎么能不用用户名和密码就能登录Input.aspx或CustomerUser.aspx
...全文
250 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzi_112 2010-01-27
  • 打赏
  • 举报
回复
呵呵
kingcsx666 2010-01-27
  • 打赏
  • 举报
回复
楼主请到网上下载一个实例看看

问了这么多还是不明白的,人多了,回答不到点子上面

只要你下载一个看看,一下就会明白的。

首先我们不管注入不注入,但是你要知道每个页面都要验证登录信息的

所以,当用户登录进去系统的时候,就要保存用户信息

转到另外一个页面的时候,判断一下这个信息是否正确,不存在就给他退出(或者转首页)
Gondon 2010-01-27
  • 打赏
  • 举报
回复
路过 看看学习一下
chin_994 2010-01-27
  • 打赏
  • 举报
回复
string strSql = "select UserID,UPassword,UserName,GroupID,InputID from CompanyStaff Where UserName = " + strStaffName + " and UPassword =" + strStaffPsw + "";


我想问~~~~~~~~~~这里的SQL语句是不是写错了,条件那是不是应该是
Where UserName = '" + strStaffName + "' and UPassword ='" + strStaffPsw + "'"";
newdigitime 2010-01-27
  • 打赏
  • 举报
回复
首先你在web.config中对目标页是否设置了:

只能登录用户才能访问?

如果没有这一步,那当然就是随便上.

另外,你这SQL语句拼得不安全,上面大家都说了,随便弄一个 'or 1=1 就破了.

另外,这句有很的搞笑

if (password == strPassword)

password就是通过条件 字段=strPassword 查询出来的.

还不如if (rd.read())

另外,用户验证时,最好只查询一个条件,譬如查询用户名为XXX的密码值,再把取得值与用户输入密码进行比较
更进一步是,密码进行加密再保存.







maomao90 2010-01-27
  • 打赏
  • 举报
回复
楼主说这话好象我之前一个老师说的:不用用户名和密码也可登录
maomao90 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 shuang7924 的回复:]
多了解点sql语句的注入方面的知识!
[/Quote]
jonqwe 2010-01-27
  • 打赏
  • 举报
回复
用户名的框中输入:随便or1 =1 就OK 了
如梦_ls 2010-01-27
  • 打赏
  • 举报
回复
多了解点sql语句的注入方面的知识!
cfvgodot 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 swalp 的回复:]
引用 26 楼 cfvgodot 的回复:
引用 23 楼 swalp 的回复:
引用 20 楼 cfvgodot 的回复:
- -#  你真让人头疼
看你问的这么辛苦

你自己做一下字符穿拼接

SQL codeselect*from[table]whereuser='user'//正确的select*from[table]whereuser=''or1=1--'//这里是BUG,用户名填写' or 1=1 --不就可以绕过验证了么

这样是进不去的。因为要比较密码是不是和输入的一致。
18楼的也是进不去的。
我不是为了防进入,我是想知道怎么进入。大哥们我错了!难道我的表达能力那么差吗


我们给你说的只是一个例子,你做一下变更不就得了

SQL code' or UserName!='' --

你把这个填进去看看能不能进!

我知道是BUG,前面的一个单引号是把SQL语句的where UserName = ' 合并,中间的 or 1=1 是个恒成立的条件 ,后面的“--”是把后面的SQL语句注释掉,但是只写这么一句是进不去的。我想知道还需要写些什么才能进去
[/Quote]


你太叫人郁闷了,你都有了写表权限了还不会操作么 自己在查询分析器上写不就得了 自己加个用户不就得了!
swalp 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 xiangchengboy 的回复:]
引用 29 楼 swalp 的回复:
引用 24 楼 fwacky 的回复:
Response.Redirect("Input.aspx");
Response.Redirect("CustomerUser.aspx");

你这不是 跳转页么?
在你的登录 http://localhost/你的站点/login.aspx
修改为:
http://localhost/你的站点/CustomerUser.aspx
or
http://localhost/你的站点/Input.aspx

是否都能进!

都进不去,况且,他也不知道我要跳转的页面名字啊
不会吧!
[/Quote]
pian ni wo shi xiao gou
swalp 2010-01-27
  • 打赏
  • 举报
回复
明天早上我把程序打包传上来,希望好心的大哥,大姐们帮帮小弟我。我是真的想知道答案!
xiangchengboy 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 swalp 的回复:]
引用 24 楼 fwacky 的回复:
Response.Redirect("Input.aspx");
Response.Redirect("CustomerUser.aspx");

你这不是 跳转页么?
在你的登录 http://localhost/你的站点/login.aspx
修改为:
http://localhost/你的站点/CustomerUser.aspx
or
http://localhost/你的站点/Input.aspx

是否都能进!

都进不去,况且,他也不知道我要跳转的页面名字啊
[/Quote]不会吧!
Red_m 2010-01-27
  • 打赏
  • 举报
回复
辛苦啊,学习中,帮顶。!!
swalp 2010-01-27
  • 打赏
  • 举报
回复
还有人来帮忙吗?
swalp 2010-01-27
  • 打赏
  • 举报
回复
我会等到最后,不行我就把我的程序打包传上来,让大家帮忙看看,看看怎么不用用户名和密码就能登录!
swalp 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 cfvgodot 的回复:]
引用 23 楼 swalp 的回复:
引用 20 楼 cfvgodot 的回复:
- -#  你真让人头疼
看你问的这么辛苦

你自己做一下字符穿拼接

SQL codeselect*from[table]whereuser='user'//正确的select*from[table]whereuser=''or1=1--'//这里是BUG,用户名填写' or 1=1 --不就可以绕过验证了么

这样是进不去的。因为要比较密码是不是和输入的一致。
18楼的也是进不去的。
我不是为了防进入,我是想知道怎么进入。大哥们我错了!难道我的表达能力那么差吗


我们给你说的只是一个例子,你做一下变更不就得了

SQL code' or UserName!='' --

你把这个填进去看看能不能进!
[/Quote]
我知道是BUG,前面的一个单引号是把SQL语句的where UserName = ' 合并,中间的 or 1=1 是个恒成立的条件 ,后面的“--”是把后面的SQL语句注释掉,但是只写这么一句是进不去的。我想知道还需要写些什么才能进去
jackrong 2010-01-27
  • 打赏
  • 举报
回复
学习了,老师不错啊。
swalp 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 cfvgodot 的回复:]
引用 23 楼 swalp 的回复:
引用 20 楼 cfvgodot 的回复:
- -#  你真让人头疼
看你问的这么辛苦

你自己做一下字符穿拼接

SQL codeselect*from[table]whereuser='user'//正确的select*from[table]whereuser=''or1=1--'//这里是BUG,用户名填写' or 1=1 --不就可以绕过验证了么

这样是进不去的。因为要比较密码是不是和输入的一致。
18楼的也是进不去的。
我不是为了防进入,我是想知道怎么进入。大哥们我错了!难道我的表达能力那么差吗


我们给你说的只是一个例子,你做一下变更不就得了

SQL code' or UserName!='' --

你把这个填进去看看能不能进!
[/Quote]
进不去!
swalp 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 fwacky 的回复:]
Response.Redirect("Input.aspx");
Response.Redirect("CustomerUser.aspx");

你这不是 跳转页么?
在你的登录 http://localhost/你的站点/login.aspx
修改为:
http://localhost/你的站点/CustomerUser.aspx
or
http://localhost/你的站点/Input.aspx

是否都能进!
[/Quote]
都进不去,况且,他也不知道我要跳转的页面名字啊
加载更多回复(28)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧