2手法拉利f430:关于ASP如何判断是那个文件转过来的!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 10:17:42
最近发现自己的网站有个小漏洞,想使用一个技巧来防御,

请问如何判断ASP网页是指定的页转过来的

例如!

管理员页:admin.asp
新闻管理系统:news.asp

如何实现连接news.asp必须是admin.asp转过来的!如何在news.asp里面加入判断语句,判断必须是admin.asp转过来的才可以使用!!

楼主是在 管理员页:admin.asp 设置等人

admin.asp连接news.asp页
但是没有用到Session对象

发现可以直接跳过等入页到达news.asp是吗
这是因为你没有用Session对象对每个用户进行判断是不是管理员
不是的回到admin.asp页
处理方法是在须要用管理员验证的每个页面(admin.asp连接的每页)前加如下面一段
(根据用户数据库和自己需要来修改)
<%
if session("admin")="" then
response.write"<SCRIPT language=JavaScript>alert('用户没有等入');"
response.redirect "admin.asp
end if
if session("admin")<>"" then
admin1=session("admin")
password1=session("password")

set rs=server.CreateObject("ADODB.RecordSet")
rs.open "select * from admin where admin='" &admin1&"' and password='"&password1&"'",conn,1,2
if rs.eof and rs.bof then
response.write"<SCRIPT language=JavaScript>alert('用户不是管理员!');"
response.redirect "admin.asp "
response.End
end if
end if
%>

可以考虑用
Session对象和Redirect方法,具体你自己思考一下,我只是提供个思路,没有实践过.

ref=request.queryString("refer")
if not ref="admin.asp" then
%>
错误,你不是管理员
<%
response.end
end if

Dim Http,Host
Host = Request.ServerVariables("HTTP_HOST") '读取网站域名或者IP
Http = Request.ServerVariables("HTTP_REFERER") '读取从哪里跳转过来的
Host = "http://" & Host & "/你存放admin.asp的目录/admin.asp"
'Response.Write(Host&"< Br >")
'Response.Write(Http)
If Http<>Host Then
Response.Write("你不是从admin.asp页面跳转过来的!")
Response.End()
End If

最简单的办法,你可以在admin.页里写入一个seesion.例如:session("admin")=ture.
然后在news页里读出来.在开始用判断语句:
if session("admin") <> ture then
response.redirect "admin.asp"
response.end
end if
大体上这样就能实现你所要的功能了.
不足之处多多指教.