快捷搜索:   服务器  PHP  安全  linux 安全  IIS

ASP中防盗链接函数

简单介绍下功能吧:使用了ASP的一个对象ServerVariables(服务器环境变量),通过这个环境变量可以获取到真正的下载地址再通过一些简单的VBS内置函数破坏其真正地址的完整性。达到欺骗下载软件的功能。现附上源码提供大家学习。
复制代码 代码如下:
 

  1. <% FunctIon DownloadFIle(StrFIle)   
  2. StrFIlename=StrFIle   
  3. Response.Buffer=True   
  4. Response.Clear   
  5. Set S=Server.CreateObJect("ADODB.Stream")   
  6. S.Open   
  7. S.Type=1   
  8. on Error Resume Next   
  9. Set Fso=Server.CreateObJect("ScrIptIng.FIleSystemObJect")   
  10. If Not Fso.FIleExists(StrFIleName) Then   
  11. From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))   
  12. Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))   
  13. If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then   
  14. Response.WrIte "该文件不存在或者已经删除."   
  15. Response.End   
  16. End If   
  17. Response.RedIrect Request.ServerVarIables("HTTP_REFERER")   
  18. Response.End   
  19. End If   
  20. FileExt=MId(StrFIlename,InStrRev(StrFIleName, ".")+1)   
  21. Select Case UCase(FIleExt)   
  22. Case "ASP""ASA""ASPX""ASAX""MDB""PHP""JSP""SHTML""HTML""HTM""TV""DATA"   
  23. From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))   
  24. Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))   
  25. If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then   
  26. Response.WrIte "该文件不存在或者已经删除."   
  27. Response.End   
  28. End If   
  29. Response.RedIrect Request.ServerVarIables("HTTP_REFERER")   
  30. Response.End   
  31. End Select   
  32. Set F=Fso.GetFIle(StrFIlename)   
  33. IntFIlelength=F.SIze   
  34. s.LoadFromFIle(StrFIlename)   
  35. If Err Then   
  36. From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))   
  37. Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))   
  38. If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then   
  39. Response.WrIte "该文件数据不完整或许已损坏."   
  40. Response.End   
  41. End If   
  42. Response.RedIrect Request.ServerVarIables("HTTP_REFERER")   
  43. Response.End   
  44. End If   
  45. Set Upload=Server.CreateObJect("PersIts.Upload")   
  46. If Upload Is Nothing Then   
  47. Response.AddHeader "Content-DIsposItIon","attachment; FIlename="&F.Name   
  48. Response.AddHeader "Content-Length",IntFilelength   
  49. Response.CharSet="UTF-8"   
  50. Response.ContentType="application/x-download"   
  51. Response.BinaryWrite S.Read   
  52. Response.Flush   
  53. S.Close   
  54. Set s=NothIng   
  55. Else   
  56. Upload.SendBinary StrFIlename,True,"application/x-download",False   
  57. End If   
  58. End FunctIon   
  59. %> 

使用:<%Call DownloadFIle("DownloadFIle")%>。
 

顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论