注册 登录
编程论坛 ASP技术论坛

怎样做到,从外部输入地址无法访问本页

dhdhzzw 发布于 2007-09-04 09:19, 1524 次点击
怎样做到,从外部输入地址无法访问本页。。。。。。。。。。。如一个页面只能链接进入,不能直接输地址进入。。
19 回复
#2
ayue2222007-09-04 09:29

Dim url1,url2

url1=Cstr(Request.ServerVariables("HTTP_REFERER"))
url2=Cstr(Request.ServerVariables("SERVER_NAME"))
If mid(url1,8,len(url2))<>url2 Then
Response.redirect "error.asp?ErrCodes=<li>禁止非法访问!!!你的IP (<font color=blue>"&Request.ServerVariables("HTTP_REFERER")&"</font>) 已经记录!"
Response.End
End If

#3
都市打工者2007-09-04 09:44
#4
jiushini502007-09-04 12:34

防盗连,没用,照样可以通过程序模拟出内部连接,访问楼主说的网页

#5
gupiao1752007-09-04 16:37
呵..有句话叫防不胜防,如果只是简单防卫:不必像2楼版主那样麻烦.
只要用一个参数就行,方便理解记忆!
<%url1=Cstr(Request.ServerVariables("HTTP_REFERER"))
if url1="" then
response.write "非法IP不允许进入"
else
response.write "进入正常页面"
end if
%>
#6
不惑2007-09-04 16:59

5楼的方法好象找任何一个网站只要写进这个地址就可以访问了.
它就可以通过那个网站访问过来了.
因为Request.ServerVariables("HTTP_REFERER")值都不会为空只是另一个网站的值

#7
gupiao1752007-09-04 17:15

不好意思,不太明白你说的这句话:
好象找任何一个网站只要写进这个地址就可以访问了.写进这个地址是写进什么,我估计没几个人能看董你说的写进什么?
假设a.asp代码为:
<a href="b.asp>www</a>
b.asp为:
<%url1=Cstr(Request.ServerVariables("HTTP_REFERER"))
if url1="" then
response.write "非法IP不允许进入"
else
response.write "进入正常页面"
end if
%>
试问谁能在本机地址拦上不通过a.asp连接到b.asp而直接输入http://localhost/b.asp直接进入?
当然不排除一些对原理非常清楚的少数人士能够进入,可是如果遇到这样的人,2楼版主的2个参数的方法不也如同虚设了嘛!
这里讲实用,易懂为原则,如果真要做到没人能进入,我估计世上没这种水准的人,即使他能暂时想出来也不能保永远没人能破解!对吧?

#8
zhongx2007-09-04 17:16
我感觉还是二楼的好用点.
#9
ayue2222007-09-04 17:23
以下是引用gupiao175在2007-9-4 17:15:33的发言:

不好意思,不太明白你说的这句话:
好象找任何一个网站只要写进这个地址就可以访问了.写进这个地址是写进什么,我估计没几个人能看董你说的写进什么?
假设a.asp代码为:
<a href="b.asp>www</a>
b.asp为:
<%url1=Cstr(Request.ServerVariables("HTTP_REFERER"))
if url1="" then
response.write "非法IP不允许进入"
else
response.write "进入正常页面"
end if
%>
试问谁能在本机地址拦上不通过a.asp连接到b.asp而直接输入http://localhost/b.asp直接进入?
当然不排除一些对原理非常清楚的少数人士能够进入,可是如果遇到这样的人,2楼版主的2个参数的方法不也如同虚设了嘛!
这里讲实用,易懂为原则,如果真要做到没人能进入,我估计世上没这种水准的人,即使他能暂时想出来也不能保永远没人能破解!对吧?

你这个只能防止通过直接输入地址访问该页面,但是请问,如果我在我的机器上建一个网页,然后上面随便加一个链接到b.asp,你的能防止么??
所以需要判断来源网址的域名是否匹配来防止这样的非法访问..

#10
gupiao1752007-09-04 17:53
以下是引用ayue222在2007-9-4 17:23:37的发言:

你这个只能防止通过直接输入地址访问该页面,但是请问,如果我在我的机器上建一个网页,然后上面随便加一个链接到b.asp,你的能防止么??
所以需要判断来源网址的域名是否匹配来防止这样的非法访问..

哈哈,那同样的问题,我也问你,用你的2个参数的方式,我只要同样的建立一个文件C.ASP也可以连接到B.ASP.不仅仅只靠A.ASP.你的方法也一样无法防止这种情况哦!

所以既然效果是一样的,干吗不选择简单的,而要选择复杂的.头脑没发烧吧!这里我只是谈观点,没针对个人.请不要误会!
还有能写个ASP文件上传到别人网站上去的(当然本机是自己可以控制的),这样的人,你能防住几个?这样的人简单方法能对他有用吗?

#11
ayue2222007-09-04 18:06

哈哈,那同样的问题,我也问你,用你的2个参数的方式,我只要同样的建立一个文件C.ASP也可以连接到B.ASP.不仅仅只靠A.ASP.你的方法也一样无法防止这种情况哦!


请看懂我说的意思再发表意见,如果你都能在他的服务器上随便建立文件了,还谈什么防盗链?
我说的是防止在本地建立一个网页,页面上写上b.asp的链接,然后运行点击这个链接就能够打开b.asp文件而不是在服务器上建立,懂???

#12
gupiao1752007-09-04 18:19
以下是引用ayue222在2007-9-4 17:23:37的发言:

你这个只能防止通过直接输入地址访问该页面,但是请问,如果我在我的机器上建一个网页,然后上面随便加一个链接到b.asp,你的能防止么??
所以需要判断来源网址的域名是否匹配来防止这样的非法访问..

既然你说:如果你都能在他的服务器上随便建立文件了,还谈什么防盗链?
哈哈,你不觉得有点只许周官放火,不许百姓点灯吗>?开始提测试也是你,不提的也是你!不建立服务器,那你干吗,最后放家里生绣吗?笑死人了。

#13
gupiao1752007-09-04 18:22
这话是你说的吧!:
我说的是防止在本地建立一个网页,页面上写上b.asp的链接,然后运行点击这个链接就能够打开b.asp文件而不是在服务器上建立,懂???
放本地有个屁用,效果要的就是放外界,除非你想把文件放家里生绣!既然你的方法和我的方法在对外和本地的测试效果是一样的。干吗不选择简单的!我知道你回答其他人问题很热情,并且早就听说过你这个版主,可你的技术我很不敢恭维!
#14
gupiao1752007-09-04 18:29

还有这话也是你说的吧:
你这个只能防止通过直接输入地址访问该页面,但是请问,如果我在我的机器上建一个网页,然后上面随便加一个链接到b.asp,你的能防止么??
如果我在我的机器上建一个网页,好既然你能建立,那还要服务器干什么?
你又告诉我说:
,如果你都能在他的服务器上随便建立文件了,还谈什么防盗链?
这不是废话吗?这里说如果我在本机建立一个文件的话....怎么样 ??然后这里又要求别人在服务器上随便建立一个...还谈什么盗连!
要求别人在服务器上建立文件,而自己却说我如在本机上建立一个文件.你这不是强词夺理吗。自己不要求自己高一些吧了。要求别人在服务器上建立文件.你是脑子烧坏了吧!既然都在本机上测试,你谈什么防盗练,盗给谁呀!盗给你自己吗?
我当然不可以在服务器上建立一个文件.可是在本机上测试的效果是完全一样的。干吗选择简单的呢?

#15
gupiao1752007-09-04 18:32
你说:
你这个只能防止通过直接输入地址访问该页面,但是请问,如果我在我的机器上建一个网页,然后上面随便加一个链接到b.asp,你的能防止么??
那你的方法在本机难道就是防止盗练了吗?我在本机再建立一个文件C.ASP连接到B.ASP一样可以成功,用的就是你的那个负责的2参数方法,不一定要通过A.ASP.
你的方法有更好?笑死人了。
#16
gupiao1752007-09-04 18:35
方法是死的,人是活的,你的热情,我很感谢你.也很敬佩你.

可是你不能因为别人方法和你不一样,就强词夺理!对吧?
#17
ayue2222007-09-04 22:20

偶本来就是菜鸟一个。。也从来没认为我的技术怎么样。。
如果你是母的,偶可以无视原谅你
如果你是公的,偶只能鄙视就一个字。。
你他妈算个鸟?

#18
zhongx2007-09-04 22:36
不要吵闹了,大家都只不过是用不同的方法去解决而已...

希望 gupiao175 以后能够多些帮助别人! 不要骂我啊......

同时希望 ayue222 能够把热情继传续,让更加的人受惠于阁下......
#19
都市打工者2007-09-16 18:45
问题有带解决啊
#20
multiple19022007-09-16 18:53
按照本帖标题,2楼正确。
1