2014-03-03 124 views
1

我在我的網站創建了一個受保護的區域,其中只有註冊用戶可以登錄才能下載受限制的應用程序(exe)。但他們可以複製下載鏈接,並在互聯網上提供它,所以我試圖找到隱藏下載鏈接的最簡單方法(如果可能,使用ASP經典)。如何隱藏下載鏈接

這是我到目前爲止:http://forums.aspfree.com/code-bank-54/download-manager-downloading-files-secure-location-classic-asp-65239.html。但是,使用此下載管理器時,該exe應用程序失去無法解釋其數字簽名:(

請,任何人都可以給我一些建議嗎?也許使用PHP或Flash?

謝謝!

+0

簡單的解決方案:。嵌入在下載網址一次性令牌一旦令牌的使用,您記錄它作爲使用,決不允許它再次使用 –

+0

@Marc B,我想理解你的想法...可以喲你舉個例子嗎?也許我可以獲得更多信息的鏈接?謝謝! – Guybrush

+0

@Paruba在你的數據庫中存儲了一些唯一的關鍵字(token),然後在你提供的鏈接(建議將它編碼爲[tag:Base64])時將它用作QueryString參數,當用戶通過令牌訪問頁面時您可以通過調用數據庫來檢查它,然後禁用它(刪除或歸檔它)。這種方法的美妙之處在於,你也可以做一些事情,比如允許一定數量的下載,然後禁止,所有這些都是通過根據你的令牌存儲一些元數據,比如'download count','last download'(datetimestamp)......可能性是無止境的。 – Lankymart

回答

2

下面是解我發現,使用ASP經典:

<% 
Option Explicit 
Response.Buffer = True 
If (not Session("Logged")) Then Response.End 
Dim objFso 
Dim objStream 
Dim strFileName 
Dim strFilePath 
strFileName = "App.exe" 
strFilePath = "d:\yoursitefolder\protectedfolder\" 
Set objFso = Server.CreateObject("Scripting.FileSystemObject") 
If objFso.FileExists(strFilePath & strFileName) Then 
    Response.AddHeader "Content-disposition", "filename=" & strFileName 
    Response.ContentType = "application/octet-stream" 
    Response.AddHeader "Pragma", "no-cache" 
    Response.AddHeader "Expires", "0" 
    Set objStream = Server.CreateObject("ADODB.Stream") 
    objStream.Type = 1 
    objStream.Open 
    objStream.LoadFromFile strFilePath & strFileName 
    Response.BinaryWrite(objStream.Read()) 
    objStream.Close 
    Set objStream = Nothing 
End If 
Set objFso = Nothing 
%> 
+0

不知道如何解決您的問題,除非我錯過了解問題...實際上我看到他們只需要有一個有效的會議,遺憾的是由於某種原因,鏈接來自一個不受控制的來源,例如電子郵件。最簡單的解決方案往往是最好的。 – Lankymart