分析ASP中 识别URL代码

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:43:02
接触ASP不久,不是非常熟悉。请大家帮忙 分析以下代码详细意思:

1.目前,用户文件夹index.aps中有以下代码,
当:URL中的/?id=正确用户名时,顺利转入用户网站;
当:url:中的/?id=错误用户名,系统提示“非法访问”自动返回首页
< %dim id
id=request.QueryString("id")
if not isinteger(id) then
response.write"<script>alert(""非法访问!"");location.href=""../index.asp"";</script>"
end if
set rs_shjia=server.CreateObject("adodb.recordset")
strshjia="select * from shjia where username='"&id &"'"
rs_shjia.open strshjia,conn,1,1
if rs_shjia.bof and rs_shjia.eof then
response.write"<script>alert(""非法访问!"");location.href=""../index.asp"";</script>"
end if
% >

2.另一.asp文件中,只有以下代码,如下:
当:URL中的/?id=正确用户名时,顺利转入用户网站;
当:url:中的/?id=错误用户名,系统自动返回首页
< %
id=request("id")
dim rs,sql
set rs = Server.CreateObj

1.代码1种isinterger是asp的一个函数,不是从哪里获取的是判断id是不是一个整形量的函数,not是个运算符,是逻辑非的运算符。

2.上半部分是判断提交的id是不是一个整数,如果不是整数,说明有问题,提示非法访问,如果是整数的话,还要判断数据库里究竟有没有这个id,如果有的话不操作,没有的话,提示非法访问。

3.request("id")是一个通用写法是request.querystring("id")和request.forms("id")之中其一,如果只有一个存在,则就是那一个,如果两个都存在,则取querystring。

4.系统提示过用户不存在后,会跳回index.asp,否则会跳到temporary.asp

5.没法看出来为什么"该页无法显示",可能是路径错误,请详查

1、not isinteger=非整数
2、两处是不同的方法,第一个是非整数的时候直接就kill掉了,是为了防止sql注入的办法之一;另一个是查询数据后的结果,如果数据库里没有该id则也视为非法登陆
3、id=rquest("id")是典型的post提交的数据,此处id是另一个form里提交的。
4、基本正确
5、pass.asp是访问计数的代码,是用来记录某id的访问量的,所以如果该id不存在,,则不记录点击数,并且提示非法访问,没有什么更多的东西。

补允一下,第五个问题,这个pass.asp还是有很多疏漏的,去掉安全方面的因素,就是执行上的容错也是不完善的。如果只是学习还可以,如果用来做服务的话,建议你另寻代码吧,基本上这个程序靠不住。