asp代码,用户登陆后可以修改不同ID的信息

来源:百度知道 编辑:UC知道 时间:2024/07/03 11:39:54
我有一套asp人才程序,上面有个很大的漏洞,请高人指点.

就是当个人注册后可以修改不同ID的信息,

比如我注册一个新用户ID是365,修改个人信息的页面就是personinfo_modi.asp?action=1&rid=365

可当我把后面的365换成300或其他ID时就可以随便修改别人的信息,

如何解决?我是菜鸟,请高手帮忙,定重谢!
<%
'检查帐号、密码
if session("user_class")<>"pmember" then
response.redirect "login.asp?link="&link&""
response.end
end if
pmember_login=session("user_name")
Set rs= Server.CreateObject("ADODB.RecordSet")
sql="select pmember_pwd from job_p_pmember where pmember_login='"&pmember_login&"'"
rs.open sql,conn,1,1
if rs.eof then
rs.close
set rs=nothing
response.redirect "login.asp?link="&link&""
response.End
else
if session("user_pass")<>rs("pmember_pwd") then
rs.close
set rs=nothing
response.redirect "login.asp?link="&lin

呵..我当时初学时也碰到这个问题.

解决方法:
用户登录后,会记录用户名的.或用户ID的,或者二个都记录在(SESSION中)
当用户修改信息时,就对传过来的ID进行此ID与用户名的查询.如果有的话就说名这个ID是此用户的.如果此ID下没有这个用户名,则为非法链接进入!

学习。。。

也可以在<form>标签内添加隐藏标签将用户名
传到目标页面
即:
<form>
<input type="hidden" name="rid" value="365"/>
</form>

然后在目标页面用<% getParamete("rid") %>就能得到
rid的值,即365,再作判断执行即可。

不过个人觉得用户名还是要保存在session比较方便
毕竟用到用户名的地方会比较多(检查用户权限)