ASP安全问题!!!!!
我用ASP做了一个系统,用户是分等级的.可近来发现,有低级别的用户居然能进入高级别用户的界面并使用.头大了,请大家救命!!!!
登录验证代码:
nlevel1=8(管理员8,会员1)
rs.open "select * from users where nlevel="&nlevel1&" and strloginname='"&replace(request("username"),"'","")&"'",conn,1,3
if rs("strpassword")=md5(request("password")) then
'''''登录成功
session("nadminid")=rs("id")
session("nadminlevel")=rs("nlevel")
session("stradminname")=rs("strloginname")
session("stradminpassword")=rs("strpassword")
end if
每一页面均进行了验证:
checklogin session("nadminlevel"),8
function checklogin(currlevel,requestlevel)
if currlevel=1 then
if requestlevel<>1 then response.redirect("outlogin.asp")
elseif currlevel=8 then
if requestlevel<>8 then response.redirect("outlogin.asp")
else
response.redirect("outlogin.asp")
end if
set p_rs=server.CreateObject("adodb.recordset")
if currlevel=1 then
if session("nuserid")="" or not isnumeric(session("nuserid")) then response.redirect("outlogin.asp")
if session("nuserlevel")<>1 then response.redirect("outlogin.asp")
p_rs.open "select * from users where id="&session("nuserid"),conn,1,3
if p_rs.eof then response.redirect("outlogin.asp")
if datediff("n",p_rs("dupdatetime"),now)>2 then response.redirect("outlogin.asp")
if p_rs("usertype")<>session("usertype") then response.redirect("outlogin.asp")
if p_rs("strloginname")<>session("strusername") then response.redirect("outlogin.asp")
if p_rs("strpassword")<>session("struserpassword") then response.redirect("outlogin.asp")
if p_rs("strloginip")<>Request.ServerVariables("REMOTE_ADDR") then response.redirect("outlogin.asp")
if p_rs("benabled")=0 then response.redirect("outlogin.asp")
p_rs.close
elseif currlevel=8 then
if session("nadminid")="" or not isnumeric(session("nadminid")) then response.redirect("outlogin.asp")
p_rs.open "select * from users where id="&session("nadminid"),conn,1,3
if p_rs.eof then response.redirect("outlogin.asp")
if datediff("n",p_rs("dupdatetime"),now)>2 then response.redirect("outlogin.asp")
if p_rs("nlevel")<>session("nadminlevel") then response.Redirect("outlogin.asp")
if p_rs("strloginname")<>session("stradminname") then response.redirect("outlogin.asp")
if p_rs("strpassword")<>session("stradminpassword") then response.redirect("outlogin.asp")
if p_rs("strloginip")<>Request.ServerVariables("REMOTE_ADDR") then response.redirect("outlogin.asp")
if p_rs("benabled")=0 then response.redirect("outlogin.asp")
p_rs.close
end if
set p_rs=nothing
end function
请大家帮帮忙,看一看这样做的漏洞在哪!!!!!!!!