【发布时间】:2010-12-12 11:31:56
【问题描述】:
我很好奇 Rapidshare 等文件共享网站如何检测用户通过下载管理器下载文件。
如何启用 ASP.NET Web 应用程序以阻止从下载管理器下载。
【问题讨论】:
标签: c# asp.net download download-manager
我很好奇 Rapidshare 等文件共享网站如何检测用户通过下载管理器下载文件。
如何启用 ASP.NET Web 应用程序以阻止从下载管理器下载。
【问题讨论】:
标签: c# asp.net download download-manager
当您是服务器时,您可以收到一些有关访问您的客户端的有趣信息。
其中一个参数是告诉您“用户代理”,或者简单来说就是浏览器类型。
在 PHP 中,它位于数组 $_SERVER (http://php.net/manual/en/reserved.variables.server.php) 中。
在 Dot Net 中,我认为它是 HttpRequest 类 (http://msdn.microsoft.com/en-us/library/system.web.httprequest.aspx) 的一部分。
您可以实时“询问”这些参数什么是客户端类型(IE、Firefox 或独立客户端),并对其做出反应,例如阻止下载。
【讨论】:
你想防止什么?下载管理器本身并不邪恶。
您如何定义下载管理器?每个网络浏览器都有一个不同质量的集成下载管理器。
您应该尽量避免在下载管理器中出现您不喜欢的行为,而不是下载管理器本身。
【讨论】:
rapidshare 等网站无法访问您的浏览器/下载管理器。他们根据您的 IP 地址从他们的服务器上找到有关您下载的信息。
我不认为您可以制作任何具有此类权限的网络应用程序。
【讨论】:
我相信引荐来源网址 (http://en.wikipedia.org/wiki/HTTP_referrer) 可以用作另一种廉价检查,以查看从哪里开始下载。
【讨论】:
大多数下载管理器还使用Accept-Header HTTP 标头,允许部分内容下载并通过重置重新启动。在此处查看一些文档:HTTP Status: 206 Partial Content and Range Requests
【讨论】:
如果您的意思是阻止可恢复下载和多连接下载,您应该在您的响应中添加 Accept-Ranges:none 标头。
在 Asp.net 或 Asp.net MVC 中:
Response.AddHeader("Accept-Ranges", "none");
要了解更多信息,请参阅Accept-Ranges
【讨论】: