主题:  请教有关屏蔽网站的问题?

wowosz

职务:普通成员
等级:1
金币:0.0
发贴:16
#12004/8/11 10:22:40
我的网站不想让别的无聊和不相关的网站做链接,为了阻止别人在他们的网站上链接我的网站,我想把这些网站屏蔽掉,让别人看时不能浏览到我的网站,如果想达到这个目的,有什么办法吗?

请高手指教!谢谢!



wowosz

职务:普通成员
等级:1
金币:0.0
发贴:16
#22004/8/11 10:27:18
有人知道吗?急啊!



Org

职务:普通成员
等级:1
金币:0.0
发贴:5
#32004/8/11 12:37:47
用Asp隐藏文件路径实现防盗链

一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用Asp来隐藏文件的实际下载路径。

  我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down.asp,他的网上路径为http://www.xx.com/down.asp,我们就可以用http://www.xx.com/down.asp?FileName=51windows.pdf来下载这个文件了,而且下载者无法看到这个文件实际下载路径的!在down.asp中我们还可以设置下载文件是否需要登陆,判断下载的来源页是否为外部网站,从而可以做到防止文件被盗链。

示例代码:

<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER")
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME")
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.write "非法链接!" '防止盗链
response.end
end if

if Request.Cookies("Logined"="" then
response.redirect "/login.asp" '需要登陆!
end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/"
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName"
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, "." + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName")
Set Stream = server.CreateObject("ADODB.Stream"
Stream.Type = adTypeBinary
Stream.Open
if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录
TrueFileName = "/the_pdf_file_s/"&FileName
end if
if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录
TrueFileName = "/my_D_O_C_file/"&FileName
end if
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
TrueFileName = "/all_images_/"&FileName '设置图像文件目录
end if
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>



wowosz

职务:普通成员
等级:1
金币:0.0
发贴:16
#42004/8/11 14:38:08
谢谢楼上的帮忙,可看了半天,好像与我想要的不太是一回事情!

我不是想隐藏自己文件的下载路径,只是想让未经我同意的网站链接了我的网址后无法浏览到我的网站,以达到防止与他们的网站有牵连的目的,这样有办法吗?



wowosz

职务:普通成员
等级:1
金币:0.0
发贴:16
#52004/8/11 14:39:16
有办法可以屏蔽他们的IP地址吗?我不知道应如何做?帮帮忙!



康夫

职务:普通成员
等级:5
金币:3.0
发贴:3311
#62004/8/11 14:49:18
这个不太可能吧,除非是你自己的服务器,可以用软件来实现。



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#72004/8/11 15:04:18
判断一下来源页..



apple6

职务:普通成员
等级:1
金币:0.0
发贴:55
#82004/8/11 15:23:31
楼上的说的明白些呢,如果是自己的服务器用软件如何屏蔽?是要知道对方的IP地址吗?

如果不是自己的服务器有办法来屏蔽吗?我想这个问题应当大家在需要时也会碰到吧?
如何真正的解决此问题呢,有没有最简单捷的办法呢?谢谢!



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#92004/8/11 15:28:51
Request.ServerVariables("HTTP_REFERER")

然后取得其主机名,然后和你屏蔽的地址做比较,看看是否在其中



wowosz

职务:普通成员
等级:1
金币:0.0
发贴:16
#102004/8/11 15:29:03
对呀,大家帮帮忙!



wowosz

职务:普通成员
等级:1
金币:0.0
发贴:16
#112004/8/11 15:33:41
allinhands在上个帖子中说
引用:
Request.ServerVariables("HTTP_REFERER"

然后取得其主机名,然后和你屏蔽的地址做比较,看看是否在其中



上面那句代码应加在哪里?
后两句话我没明白,能解释一下吗?