ASP隐藏文件路径以防盗链


关键词

隐藏文件路径 防盗链

摘要

本文介绍在ASP编程时,如何通过隐藏文件路径的方式来防止网站中的文件被盗链。

对于一些下载站来说,最郁闷的就是要下载的文件被人知道了地址而被盗链。你想象一下,你有一个下载站,你好不容易收集来大量的软件,并且提供了大量的服务器和带宽来支撑用户的下载。我也做一个跟你一模一样的下载站,但我没有软件,我的网站上点下载时,直接链接到你的下载文件地址。那我虽然太卑鄙了,可你的损失的确是太大了!

好了,那我们来看看在asp中如何隐藏文件路径来防止被他站盗链,简称防盗链。

<%
FunctIon DownloadFIle(strFile)
    strFileName=strFile
    Response.Buffer=True
    Response.Clear
    Set S=Server.CreateObJect("ADODB.Stream")
    S.Open
    S.Type=1
    on Error Resume Next
    Set Fso=Server.CreateObJect("ScrIptIng.FIleSystemObJect")
    If Not Fso.FIleExists(strFileName) Then
    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
    Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
    Response.End
    End If
    FileExt=MId(strFileName,InStrRev(strFileName, ".")+1)
    Select Case UCase(FIleExt)
    Case "ASP", "ASA", "ASPX", "ASAX", "MDB", "PHP", "JSP", "SHTML", "HTML", "HTM", "TV", "DATA"
    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
    Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
    Response.End
    End Select
    Set F=Fso.GetFIle(strFileName)
    IntFIlelength=F.SIze
    s.LoadFromFIle(strFileName)
    If Err Then
    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
    Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
    Response.End
    End If
    Set Upload=Server.CreateObJect("PersIts.Upload")
    If Upload Is Nothing Then
    Response.AddHeader "Content-DIsposItIon","attachment; FIlename="&F.Name
    Response.AddHeader "Content-Length",IntFilelength
    Response.CharSet="UTF-8"
    Response.ContentType="application/x-download"
    Response.BinaryWrite S.Read
    Response.Flush
    S.Close
    Set s=NothIng
    Else
    Upload.SendBinary strFileName,True,"application/x-download",False
    End If
End FunctIon
%>

这个防盗链函数的调用方式如下:

<%Call DownloadFile("下载地址")%>

注意,这里的下载地址,Server.MapPath映射过后的真实地址!

关于ASP隐藏文件路径以防盗链,本文就介绍这么多,希望对您有所帮助,谢谢!

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:ASP隐藏文件路径以防盗链:http://www.splaybow.com/post/asp-hide-path-fangdaolian.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 使用ASP编程来实现301重定向 ASP函数清除字符串的HTML标签 »

相关文章: