asp

位置:IT落伍者 >> asp >> 浏览文章

用Asp隐藏文件路径,实现防盗链


发布日期:2019年03月21日
 
用Asp隐藏文件路径,实现防盗链

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

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

示例代码:

<%

From_url=Cstr(RequestServerVariables(HTTP_REFERER))

Serv_url=Cstr(RequestServerVariables(SERVER_NAME))

ifmid(From_urllen(Serv_url))<>Serv_urlthen

responsewrite非法链接!防止盗链

responseend

endif

ifRequestCookies(Logined)=then

responseredirect/loginasp需要登陆!

endif

FunctionGetFileName(longname)/folder/folder/fileasp=>fileasp

whileinstr(longname/)

longname=right(longnamelen(longname))

wend

GetFileName=longname

EndFunction

DimStream

DimContents

DimFileName

DimTrueFileName

DimFileExt

ConstadTypeBinary=

FileName=RequestQueryString(FileName)

ifFileName=Then

ResponseWrite无效文件名!

ResponseEnd

Endif

FileExt=Mid(FileNameInStrRev(FileName)+)

selectCaseUCase(FileExt)

CaseASPASAASPXASAXMDB

ResponseWrite非法操作!

ResponseEnd

Endselect

ResponseClear

iflcase(right(FileName))=giforlcase(right(FileName))=jpgorlcase(right(FileName))=pngthen

ResponseContentType=image/*对图像文件不出现下载对话框

else

ResponseContentType=application/msdownload

endif

ResponseAddHeadercontentdispositionattachment;filename=&GetFileName(RequestQueryString(FileName))

SetStream=servercreateObject(ADODBStream)

StreamType=adTypeBinary

StreamOpen

iflcase(right(FileName))=pdfthen设置pdf类型文件目录

TrueFileName=/the_pdf_file_s/&FileName

endif

iflcase(right(FileName))=docthen设置DOC类型文件目录

TrueFileName=/my_D_O_C_file/&FileName

endif

iflcase(right(FileName))=giforlcase(right(FileName))=jpgorlcase(right(FileName))=pngthen

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

endif

StreamLoadFromFileServerMapPath(TrueFileName)

WhileNotStreamEOS

ResponseBinaryWriteStreamRead(*)

Wend

StreamClose

SetStream=Nothing

ResponseFlush

ResponseEnd

%>

上一篇:ASP内建对象速查卡

下一篇:ASP实例:读取xml文件的程序