由於許多手機鈴聲網站都有一個自己的防盜鏈程序,但此程序也就一個防君子,不防小偷的功能。簡單介紹下功能:使用了ASP的一個物件ServerVariables(伺服器環境變數),透過這個環境變數可以取得到真正的下載位址再透過一些簡單的VBS內建函數破壞其真正位址的完整性。達到欺騙下載軟體的功能。現附上原始碼提供大家學習。
複製代碼代碼如下:
<% 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(DownloadFIle)%>。