ASP安全问题!!!!!

free_wind 2005-06-24 05:21:00
我用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

请大家帮帮忙,看一看这样做的漏洞在哪!!!!!!!!
...全文
167 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xfdragon 2005-06-25
  • 打赏
  • 举报
回复
SQL注入也只能改数据库
这样从后台用户管理里应该可以看的出来的呀!
xfdragon 2005-06-25
  • 打赏
  • 举报
回复
是别人还是同台机器上的人?
你的session注销过没?
zhcool 2005-06-25
  • 打赏
  • 举报
回复
关于ASP的安全问题,楼主应该多注意了一下了,中国的ASP网站,SQL注入漏洞一大堆~
yuliang0828 2005-06-25
  • 打赏
  • 举报
回复
你的结构太复杂,你不是只要检测是否为8的,如果不是提前处理掉就是了,不必后面反复的if吧
zol223 2005-06-24
  • 打赏
  • 举报
回复
我买了一个 便宜的 asp.net空间!才50元!高兴!给分!!
100mb 的!可以做论坛!才 50元!!速度飞快!
www.hi876.com 你们看看
moeryang 2005-06-24
  • 打赏
  • 举报
回复
还有,能不能教教我,要怎么防止SQL注入?
替换特殊的字符如“'”,"--";
或者用存储过程;
free_wind 2005-06-24
  • 打赏
  • 举报
回复
还有,能不能教教我,要怎么防止SQL注入?
free_wind 2005-06-24
  • 打赏
  • 举报
回复
那就以我那些登录验证的代码为例,能不能说一下,要怎么通过?
丛林蚂蚁 2005-06-24
  • 打赏
  • 举报
回复
SQL注入,你到GOOGLE去搜一下.你的程序肯定没考虑sql注入的问题.

简单的说,就是利用你的程序不验证客户端传入的数据,通过修改参数值,使你生成的SQL语句发生,以取得你服务器上的一些资料,以达到入侵的目的.而通过你的登录验证就更简单了.
free_wind 2005-06-24
  • 打赏
  • 举报
回复
我查了所有的记录,发现他居然能用高级别帐号登录进去,我估计他还用什么软件扫描了所有的ASP文件,因为我发现访问页面的时间间隔非常短,一秒内可以访问好几页.
free_wind 2005-06-24
  • 打赏
  • 举报
回复
SQL注入,是怎么回事,我不太明白
QQgenie 2005-06-24
  • 打赏
  • 举报
回复
可能是直接打开记录.

考虑SQL注入问题
feifeizaizhe 2005-06-24
  • 打赏
  • 举报
回复
逻辑关系太复杂了,我建议你还是重新理一下。
free_wind 2005-06-24
  • 打赏
  • 举报
回复
或者说,这样的程序,是否能进入其他级别的界面?

另外,数据库连接文件是一个单独的文件.
白夜花寒 2005-06-24
  • 打赏
  • 举报
回复
你把流程图画出来,逻辑关系摆摆的,不知道你什么是低级什么是高级的。。。。。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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