手机
当前位置:查字典教程网 >编程开发 >ASP教程 >用Asp隐藏文件路径,实现防盗链 的代码
用Asp隐藏文件路径,实现防盗链 的代码
摘要:用Asp隐藏文件路径,实现防盗链如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51window...

用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"))

ifmid(From_url,8,len(Serv_url))<>Serv_urlthen

response.write"非法链接!"'防止盗链

response.end

endif

ifRequest.Cookies("Logined")=""then

response.redirect"/login.asp"'需要登陆!

endif

FunctionGetFileName(longname)'/folder1/folder2/file.asp=>file.asp

whileinstr(longname,"/")

longname=right(longname,len(longname)-1)

wend

GetFileName=longname

EndFunction

DimStream

DimContents

DimFileName

DimTrueFileName

DimFileExt

ConstadTypeBinary=1

FileName=Request.QueryString("FileName")

ifFileName=""Then

Response.Write"无效文件名!"

Response.End

Endif

FileExt=Mid(FileName,InStrRev(FileName,".")+1)

SelectCaseUCase(FileExt)

Case"ASP","ASA","ASPX","ASAX","MDB"

Response.Write"非法操作!"

Response.End

EndSelect

Response.Clear

iflcase(right(FileName,3))="gif"orlcase(right(FileName,3))="jpg"orlcase(right(FileName,3))="png"then

Response.ContentType="image/*"'对图像文件不出现下载对话框

else

Response.ContentType="application/ms-download"

endif

Response.AddHeader"content-disposition","attachment;filename="&GetFileName(Request.QueryString("FileName"))

SetStream=server.CreateObject("ADODB.Stream")

Stream.Type=adTypeBinary

Stream.Open

iflcase(right(FileName,3))="pdf"then'设置pdf类型文件目录

TrueFileName="/the_pdf_file_s/"&FileName

endif

iflcase(right(FileName,3))="doc"then'设置DOC类型文件目录

TrueFileName="/my_D_O_C_file/"&FileName

endif

iflcase(right(FileName,3))="gif"orlcase(right(FileName,3))="jpg"orlcase(right(FileName,3))="png"then

TrueFileName="/all_images_/"&FileName'设置图像文件目录

endif

Stream.LoadFromFileServer.MapPath(TrueFileName)

WhileNotStream.EOS

Response.BinaryWriteStream.Read(1024*64)

Wend

Stream.Close

SetStream=Nothing

Response.Flush

Response.End

%>

【用Asp隐藏文件路径,实现防盗链 的代码】相关文章:

利用批处理文件和 vbs 脚本实现网站视频自动录制

使用asp代码突破163相册的防盗连

用asp实现的代码批量修改程序,fso相关

[ASP]使用类,实现模块化

ASP中通过该日历算法实现的具体代码

asp中通过getrows实现数据库记录分页的一段代码

使用asp代码突破图片的防盗连

用ASP实现对ORACLE数据库的操作

ASP下实现自动采集程序及入库的代码

asp防止刷新功能实现代码

精品推荐
分类导航