3

我很好奇诸如 rapidshare 之类的文件共享网站如何检测用户通过下载管理器下载文件。

如何启用 ASP.NET Web 应用程序以防止从下载管理器下载。

4

6 回答 6

2

当您是服务器时,您可以收到有关访问您的客户端的一些有趣信息。

其中一个参数是告诉您“用户代理”,或者简单来说就是浏览器类型。

在 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 或独立客户端),并对其做出反应,例如阻止下载。

于 2010-12-12T11:45:12.073 回答
1

大多数下载管理器还使用Accept-HeaderHTTP 标头,允许部分内容下载并通过重置重新启动。在此处查看一些文档:HTTP 状态:206 部分内容和范围请求

于 2010-12-12T19:48:10.227 回答
1

我相信referrer(http://en.wikipedia.org/wiki/HTTP_referrer)可以用作另一种廉价的检查来查看下载的开始位置。

于 2010-12-12T19:39:52.987 回答
1

rapidshare 等网站无法访问您的浏览器/下载管理器。他们根据您的 IP 地址从他们的服务器上找到有关您下载的信息。

我认为您不能制作任何具有此类权限的网络应用程序。

于 2010-12-12T11:35:08.303 回答
1

你想防止什么?下载管理器本身并不邪恶。

您甚至如何定义下载管理器?每个网络浏览器都有一个不同质量的集成下载管理器。

您应该尽量防止在下载管理器中出现您不喜欢的行为,而不是下载管理器本身。

  • 您可以使用验证码来阻止自动下载(但可能并不总是有效并惹恼用户)
  • 您可以通过每个 IP 只允许一次下载来防止并行下载。
于 2010-12-12T11:38:53.403 回答
0

如果您的意思是阻止可恢复和多连接下载,您应该在您的response中添加一个Accept-Ranges:none标头。

在 Asp.net 或 Asp.net MVC 中:

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

要了解更多信息,请参阅接受范围

于 2013-04-26T02:22:59.230 回答