防止盗链下载问题

原创 2004年10月26日 19:29:00
经常在网络上四处载东西,有时碰到直接拷贝一个类似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

版权声明:本文为博主原创文章,未经博主允许不得转载。

8种网站防止盗链的方法

作为普通的网民来说,一般不需要知道也不用关心什么是盗链,不过如果你是网站的开发者或维护者,就不得不重视盗链的问题了。如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上...
  • linshichen
  • linshichen
  • 2016年06月15日 10:10
  • 6928

如何給html5的video的src地址不以明文方式顯示,以防止下載

chrome: chrome的video標籤支持src redirect。 This browser does not support the video tag. ...
  • mochong
  • mochong
  • 2017年03月28日 14:15
  • 1925

web后端--一个小小的下载和防盗链功能

下载功能代码: //1获取要下载的文件名 String filename = req.getParameter("filename"); //如果没有文件名 if(filename==n...
  • qq_36639907
  • qq_36639907
  • 2017年08月15日 11:08
  • 549

Ueditor富编辑器第二次打开的时候会渲染失败

1、在页面或窗口关闭的时候,通过监听页面或窗口事件,在函数里面销毁富编辑器 if(typeof(UE.getEditor("newsContentAdd")) !='undefined'){...
  • ystyaoshengting
  • ystyaoshengting
  • 2015年12月18日 09:32
  • 6992

利用referer防止盗链下载

【这篇是在网上看到的关于referer的文章,还有些不明白,转过来大家待日后再好好研究一下】 一、首先了解下 referer 的原理  request.getHeader("referer")  在...
  • Jerry_Dui
  • Jerry_Dui
  • 2015年04月03日 18:50
  • 823

Web基础之盗链与简单防盗链技术

Web基础之盗链技术与简单防盗链技术 一、盗链简介: 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内...
  • BlueSky_USC
  • BlueSky_USC
  • 2017年05月30日 17:22
  • 499

防止盗链下载问题

经常在网络上四处载东西,有时碰到直接拷贝一个类似http://193.100.100.56/TestWebSolution/WebApplication1/test.rar地址准备下载test.rar...
  • jxufewbt
  • jxufewbt
  • 2007年05月19日 17:11
  • 477

[转载]防止盗链下载问题

以下内容来自防止盗链下载问题,作者Think Different and Think More,由于一时没有收藏,导致需要时找到,幸好在这里发布求助求助一个BLOG的连接地址获得了Hover的帮助,又...
  • windok2004
  • windok2004
  • 2008年04月14日 16:52
  • 281

JAVA防止盗链的小demo

package cn.edu.Request;         import java.io.IOException;   import java.io.PrintWriter;      ...
  • qq_35873847
  • qq_35873847
  • 2017年07月05日 11:44
  • 190

怎么防止网站图片被盗链?

要防止网站图片被盗链,那么就有必要了解?链的手段,基本上可以分为两种: 第一种:盗链者直接使用图片链接引用网站上的图片。防止这种盗链情况的发生有两种可行的方法:通过Apache服务器进行控制和使用S...
  • luyaran
  • luyaran
  • 2016年09月18日 11:29
  • 2823
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:防止盗链下载问题
举报原因:
原因补充:

(最多只允许输入30个字)