找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1511|回复: 1

[建站技术] 防盗链接ASP函数

[复制链接]
发表于 2011-6-12 02:15:40 | 显示全部楼层 |阅读模式
简单介绍下功能吧:使用了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. %>
复制代码
使用:
  1. <%Call DownloadFIle("DownloadFIle")%>
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|王牌互联

GMT+8, 2024-11-25 03:39 , Processed in 0.034218 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表