`

防止盗链下载问题

阅读更多
经常在网络上四处载东西,有时碰到直接拷贝一个类似http://193.100.100.56/TestWebSolution/WebApplication1/test.rar地址准备下载test.rar文件时,却被告知没有登录或者直接跳转到其他页面的情况,然后等登录后直接下载该文件。要实现上面情况,在.NET世界里是比较容易的。

1、  首先创建一个类库项目ClassLibrary1,实现如下(点这里查看):

using System;

using System.Web;    // 引用System.Web组件

 

namespace ClassLibrary1

{

    public class MyHandler : IHttpHandler

    {

        public MyHandler()

        {

        }

 

        #region IHttpHandler 成员

        public void ProcessRequest(HttpContext context)

        {

            // 跳转到WebForm1.aspx,由WebForm1.aspx输出rar文件

            HttpResponse response = context.Response;

    response.Redirect("http://193.100.100.56/TestWebSolution/WebApplication1/WebForm1.aspx");

        }

 

        public bool IsReusable

        {

            get

            {

                // TODO:  添加 MyHandler.IsReusable getter 实现

                return true;

            }

        }

        #endregion

    }

}
 


 

2、  创建测试用的Web项目WebApplication1。在配置文件Web.config文件节点里增加如下节点:

  <httpHandlers>

               <add verb="*" path="*.rar" type="ClassLibrary1.MyHandler, ClassLibrary1" />

httpHandlers>

 

3、  在WebForm1.aspx里增加一个文本为“下载”的Button,其Click事件如下(点这里查看):

FileInfo file = new System.IO.FileInfo(@"G:\WebCenter\TestWebSolution\WebApplication1\test.rar");

// FileInfo 类在 System.IO 命名空间里

              Response.Clear();

              Response.AddHeader("Content-Disposition", "filename=" + file.Name);

              Response.AddHeader("Content-Length", file.Length.ToString());

              string fileExtension = file.Extension;

 

              // 根据文件后缀指定文件的Mime类型

              switch (fileExtension)

              {

                   case ".mp3":

                       Response.ContentType = "audio/mpeg3";

                       break;

                   case "mpeg":

                       Response.ContentType = "video/mpeg";

                       break;

                   case "jpg":

                       Response.ContentType = "image/jpeg";

                       break;

                   case "........等等":

                       Response.ContentType = "....";

                       break;

                   default:

                       Response.ContentType = "application/octet-stream";

                       break;

              }

 

              Response.WriteFile(file.FullName);

              Response.End();
 


 

 

4、  最后一步就是在IIS里增加一个应用程序扩展。在“默认网站”->“属性”->“主目录”->“配置”。在弹出的“应用程序配置”窗口里按“添加”,在弹出的“添加/编辑应用程序扩展名映射”窗口里“可执行文件”选择C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,在扩展名里输入“.rar”,然后确定即可。

 

5、  在IE里输入http://193.100.100.56/TestWebSolution/WebApplication1/test.rar,会立即跳转到http://193.100.100.56/TestWebSolution/WebApplication1/WebForm1.aspx,然后按WebForm1.aspx的“下载”按钮就可以下载test.rar了。

 

6、  当然,这里只按例子给个思路,完全可以再根据自身情况扩展。下面有几个参考的资源文章:

l         http://www.9seek.com/news/show.aspx?id=745&cid=12

l         http://www.9seek.com/news/show.aspx?id=521&cid=12

l         http://www.9seek.com/news/show.aspx?id=520&cid=12

l         http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/URLRewriting.asp

分享到:
评论

相关推荐

    asp.net 防止盗链下载文件示例

    在ASP.NET中,防止盗链下载文件是一项重要的安全措施,尤其对于那些提供付费或版权受保护的资源下载的网站来说。盗链指的是其他网站通过链接直接引用你的服务器资源,这可能导致带宽消耗过大,影响正常用户的访问...

    防止盗链(eg.jpg)的C#实现

    针对这种情况,可以采用一些技术手段来防止盗链,比如在C#中实现一种策略。本文将详细介绍如何使用C#防止盗链,以防止他人直接访问你的静态资源,如jpg图片。 首先,我们需要理解什么是HTTP Referer头。当一个...

    Asp.NET文件下载,可以防止盗链。

    以下是对Asp.NET文件下载以及防止盗链技术的详细说明。 一、Asp.NET文件下载基础 1. HTTP协议:Asp.NET文件下载基于HTTP协议,服务器通过响应头(Content-Disposition)告知客户端以下载方式处理文件,而不是在...

    (经典)图片的处理程序以及防止盗链的方法(含源码)

    防止图片盗链是另一个重要的问题。盗链是指其他网站未经许可直接引用你的图片资源,导致服务器带宽被大量消耗。ASP.NET 2.0提供了一些机制来防止这种情况: 1. **检查Referer头**:HTTP请求头中的Referer字段可以...

    Asp.Net防止盗链

    ### ASP.NET防止盗链知识点详解 #### 一、概述 在互联网应用中,资源被盗用是一种常见的问题。当用户从非授权网站访问或下载资源时,这种行为被称为“盗链”。盗链不仅会侵犯原网站的版权,还可能消耗大量的服务器...

    详解PHP防止盗链防止迅雷下载的方法

    关于PHP防止盗链防止迅雷下载的方法,我们可以从几个方面来深入探讨,包括盗链的基本原理、防止盗链的常见策略,以及如何进一步防止迅雷等下载工具的下载。 首先,盗链是指第三方网站通过非法手段直接链接到另一个...

    图片防止盗链 转转kaka100

    标题中的“图片防止盗链 转转kaka100”指的是一个关于防止网站图片被他人盗用的技术措施,通常涉及到服务器配置、JavaScript技术或使用特定的防盗链服务。在互联网上,图片盗链是一种常见现象,它会导致原网站流量...

    [c#]防图片盗链_含源码

    在IT行业中,图片盗链是一个常见的问题,尤其对于拥有大量图片资源的网站而言。图片盗链指的是其他网站未经许可直接引用你的服务器上的图片资源,这会导致你的服务器带宽被大量消耗,甚至影响到正常用户的访问体验。...

    IIS反盗链.rar

    标题中的"IIS反盗链"指的是在Internet Information Services (IIS)服务器上实施防止非法引用(也称为盗链)的策略。盗链是指其他网站通过链接直接引用了你的服务器上的资源,如图片、音频或视频文件,这可能导致你的...

    穷小子asp.net音乐盗链程序_mp3.zip

    7. 响应头控制:防止音乐文件被直接下载,开发者可能通过设置HTTP响应头,如Content-Disposition和Content-Type,来控制浏览器如何处理音乐文件,例如以流媒体方式播放而非下载。 8. 数据库交互:音乐文件的元数据...

    Asp.net防止盗链的实现原理分析

    今天在书上偶然看到了如何实现防盗链的问题,到网上查看了一下盗链主要是其他的一些网站引用本站图片或者下载链接。

    在IIS里成功加载本插件后可以有效的防止自己站点里的图片文件被其他站点盗链

    标题中的“在IIS里成功加载本插件后可以有效的防止自己站点里的图片文件被其他站点盗链”指的是在Internet Information Services(IIS)这个Web服务器上安装并配置了一个特定的插件,该插件的功能是阻止外部网站未经...

    java 防盗链详解及解决办法

    这个解决方案可以有效地防止盗链行为,保护原网站的内容和空间。但是,这只是一个基本的解决方案,实际上还需要根据具体情况进行调整和优化。 防盗链是非常重要的,因为它可以保护原网站的内容和空间,防止不道德的...

    Asp.Net Core 通过中间件防止图片盗链的实例

    虽然没有任何防御措施可以保证 100% 防止盗链,但通过在 *** Core 中实现这样的中间件技术,可以显著增加盗链的难度和成本,从而在很大程度上保护网站资源不被盗用。同时,网站管理员也应定期检查网站日志,及时发现...

    使用Apache的htaccess防止图片被盗链的解决方法

    在当今互联网环境下,图片盗链是内容创作者和网站所有者常遇到的问题。盗链指的是他人网站直接使用您的服务器资源(如图片、视频等)来显示在他们的网页上,这样不仅消耗了您的服务器带宽,还可能对您网站的性能产生...

    盗链是视频行业的绝症么?—Android_APP视频防盗链的N种姿势.pdf

    服务器端会解析视频源链接中的私有加密参数,并在策略服务中进行匹配,根据匹配结果返回相应的状态值,这样可以动态地调整访问控制策略,有效防止非法盗链。这种进阶策略能够在一定程度上避免频繁更换服务器配置带来...

    .httacces文件的密码保护和防止盗链的实现方法

    `.htaccess` 文件是Apache服务器配置中的一个非常重要的文件,它可以用来进行多种网站管理操作,如URL重写、错误页面定制、禁止特定IP访问、设置密码保护和防止盗链等。在这里,我们将主要讨论如何使用`.htaccess`...

    Apache服务器下防止图片盗链的办法

    Apache服务器作为广泛使用的Web服务器,提供了多种方法来防止图片盗链,其中包括使用`.htaccess`文件进行配置。本篇文章将深入探讨如何在Apache服务器下实施图片防盗链策略,以及如何利用图片转向技术来节省流量。 ...

    如何在PHP程序中防止盗链

    ### 如何在PHP程序中防止盗链 #### 知识点概述 在互联网环境中,防盗链技术被广泛应用于保护网站资源不被非法站点盗用。本文将详细介绍如何利用PHP中的Cookies机制来实现防盗链功能,确保网站资源的安全。 #### ...

    易语言IIS反盗链源码.zip易语言项目例子源码下载

    反盗链技术在互联网中起着至关重要的作用,它防止了网站资源被其他站点未经许可地盗用,特别是对于那些提供图片、视频等高流量内容的网站来说,反盗链可以有效节省带宽,保护原创内容的权益。易语言IIS反盗链源码的...

Global site tag (gtag.js) - Google Analytics