常州网络公司首页 >>> WEB编程 >> ASP

会员网站的会员之间的数据安全问题

发布时间:2009-4-7 23:26:34   浏览次数:3265

前几天在BAIDU的知道里看到一个问题,问题应当是个很菜的新手问的,开始我是不想回答了。问题大致是这样的,怎样在ASP里读取记录时,加入对应会员自己的ID。就是str="select * from news where id="&id,他就是怎样加入读取时对应自己的会员ID。

很简单,只要改成str="select * from news where uid="&session("uid")&" and id="&id就可以了,我当时没有把这句写出来,只是提示了一下,加入SESSION值。后面那人又用HI来问我了,我开始真的是不想说,只要想想我也是从新手过来的,以前也有人帮过我(当然也有人不理我),所以就说给他听了。

我后来问他,为什么一定要加上这个啊,不加不是一样。他说,不让这个会员看另个会员的信息。

这是我的脑袋恍然大悟,会员之间的安全问题。我自认为比这个人厉害,可这一点我都没有想到,突然想到自己做了处不小的网站也没有考虑这个问题,特别是在会员删除自己信息时没有注意到这点,我的天了,要是哪个人发现这个漏洞,我那网站所有信息可以删除了,立马去修改补漏洞。

 

下面说一下原理:

在会员管理里,每个会员都可以对自己的信息进行添加、修改、删除等功能,这种漏洞可能用于修改和删除,下面举个例子。

如删除信息,
地址:newsDel.asp?id=3
程序:
<%
id=Request.QueryString("id")
conn.execute("delete from news where id="&id)
%>

这样的删除,如果你以你的进去后,你直接在地址后面改成其他会员发布信息的ID号,如newsDel.asp?id=50,50这个ID对应的信息不是你发布的,是不是同样也可以删除。

所以你要改成

<%
id=Request.QueryString("id")
conn.execute("delete from news where uid="&session("uid")&" and id="&id)
%>

改成这样后,你改成其他会员发布的信息时,是不是就不会被删除了。

数据修改同样也是一样的原理,可以修改别的会员发布的信息。

修改好这个漏洞后,我自己有些惭愧,自认水平比别高,还出了这样的大漏洞。

最后得出一句:帮别就等于帮自己

也希望一些老鸟多帮助一些新手。同时也会帮你自己。

上一条:CSS控制内容滚动条
下一条:在asp中,正则表达式实现split分割
首页 | 在线留言 | 网站地图

CopyRight ©2008-2014   糊涂蛋技术网    苏ICP备05013073号
站长:万创   QQ:54960248  E-mail:xlxcn#126.com