簡體   English   中英

如何檢測瀏覽器或下載管理器是否正在下載文件

[英]How do you detect if a file is being downloaded by a Browser or a Download Manager

我對諸如Rapidshare這樣的文件共享站點如何檢測通過下載管理器下載文件的用戶感到好奇。

如何啟用ASP.NET Web應用程序以防止從下載管理器進行下載。

當您是服務器時,您會收到一些有關訪問您的客戶端的有趣信息。

參數之一是告訴您“用戶代理”,或者簡單地說就是瀏覽器類型。

在PHP中,它位於數組$ _SERVER( http://php.net/manual/en/reserved.variables.server.php )中。

在Dot Net中,我認為它是HttpRequest類的一部分( http://msdn.microsoft.com/zh-cn/library/system.web.httprequest.aspx )。

實時地,您可以向那些參數“詢問”客戶端類型(IE,Firefox或獨立客戶端)的類型,並對它做出反應,例如阻止下載。

Rapidshare之類的網站無法訪問您的瀏覽器/下載管理器。 他們根據您的IP地址從服務器中找到有關您下載內容的信息。

我認為您無法制作任何具有此類權限的Web應用程序。

您想預防什么? 一個下載管理器本身並不是邪惡的。

您甚至如何定義下載管理器? 每個網絡瀏覽器都有一個集成的質量不同的下載管理器。

您應該嘗試防止在下載管理器中出現不喜歡的行為,而不是在下載管理器本身中。

  • 您可以使用驗證碼阻止自動下載(但可能並不總是有效,並且會惹惱用戶)
  • 通過每個IP僅允許一次下載,您可以防止並行進行多次下載。

我相信引薦來源網址( http://en.wikipedia.org/wiki/HTTP_referrer )可以用作另一個廉價的檢查,以查看在何處啟動下載。

大多數下載管理器還使用Accept-Header HTTP標頭,允許部分內容下載並通過重置重新啟動。 在此處查看一些文檔: HTTP狀態:206部分內容和范圍請求

如果您要阻止可恢復的下載和多連接下載,則應在response中添加一個Accept-Ranges:none標頭。

在Asp.net或Asp.net MVC中:

Response.AddHeader("Accept-Ranges", "none");

要了解更多信息,請參見接受范圍

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM