防盗链的原理,从图片请求的URL地址上判断是否是我们自己网站上的域名,如果不是,恭喜,你的图片已经被盗链了!

那么我来介绍下图片放盗链的一个方法

首先,添加个httpHandlers请求,webconfig部分配置节如下:

<httpHandlers>
          <add verb="*" path="*.jpg" type="myhandler,App_Code"/>
    </httpHandlers>

然后添加个class,取名为myhandler继承于IHttpHandler

隐藏行号 复制代码 ? 防盗链
  1. using System;
    
  2. using System.Data;
    
  3. using System.Configuration;
    
  4. using System.Web;
    
  5. using System.Web.Security;
    
  6. using System.Web.UI;
    
  7. using System.Web.UI.WebControls;
    
  8. using System.Web.UI.WebControls.WebParts;
    
  9. using System.Web.UI.HtmlControls;
    
  10. public class myhandler : IHttpHandler
    
  11. {
    
  12.     public void ProcessRequest(HttpContext context)
    
  13.     {
    
  14.         string FileName = context.Server.MapPath(context.Request.FilePath);
    
  15.         if (context.Request.UrlReferrer.Host == null)
    
  16.         {
    
  17.             context.Response.ContentType = "image/JPEG";
    
  18.             context.Response.WriteFile("~/images/no.png");//被替换图片
    
  19.         }
    
  20.         else
    
  21.         {
    
  22.             if (context.Request.UrlReferrer.Host.IndexOf("localhost") > -1)//这里是你的域名
    
  23.             {
    
  24.                 context.Response.ContentType = "image/JPEG";
    
  25.                 context.Response.WriteFile(FileName);
    
  26.             }
    
  27.             else
    
  28.             {
    
  29.                 context.Response.ContentType = "image/JPEG";
    
  30.                 context.Response.WriteFile("~/images/no.png");
    
  31.             }
    
  32.         }
    
  33.     }
    
  34. 
    
  35.     public bool IsReusable
    
  36.     {
    
  37.         get { return true; }
    
  38.     }
    
  39. 
    
  40.     public myhandler()
    
  41.     {
    
  42. 
    
  43.     }
    
  44. }
    
  45. 
    

.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}
.src_container .titlebar{ background-color:#d4dfff; border:1px solid #4f81bd; border-bottom:0; padding:3px 24px; margin:0; width:auto; line-height:120%; overflow:hidden; text-align:left; font-size:12px}
.src_container .toolbar{ display:inline; font-weight:normal; font-size:100%; float:right; cursor:hand; color:#00f; text-align:left; overflow:hidden}
.toolbar span.button{ display:inline; font-weight:normal; font-size:100%; cursor:hand; color:#00f; text-align:left; overflow:hidden; cursor:pointer;}
.src_container div.clientarea{ background-color:white; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; height:auto; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}
.src_container ol.mainarea{ padding:0 0 0 52px; margin:0; background-color:#f7f7ff !important}
.number_show{ padding-left:52px !important; list-style:decimal outside !important}
.number_show li{ list-style:decimal outside !important; border-left:1px dotted #4f81bd}
.number_hide{ padding-left:0px !important; list-style-type:none !important}
.number_hide li{ list-style-type:none !important; border-left:0px}
ol.mainarea li{ display:list-item !important; font-size:12px !important; margin:0 !important; line-height:18px !important; padding:0 0 0 0px !important; background-color:#f7f7ff !important; color:#4f81bd}
ol.mainarea li pre{color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}

myhandler继承自IHttpHandler实现了对url来源来判断jpg图片是否被盗链,本class中以localhost为例,修改localhost和images/no.png参数即可.

【IHttpHandler】使用IHttpHandler防盗链的更多相关文章

  1. ASP.NET MVC 利用IRouteHandler, IHttpHandler实现图片防盗链

    你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽.下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义Ro ...

  2. ASP.NET 实现简单的图片防盗链介绍

    在此,网站图片防盗链的方法是,通过获取Http请求头中的 Referer 标头与本网站域名比较,来判断用户是否来自本站跳转过来的 . 创建一个全局处理程序,用来处理images目录下的图片的直接请求: ...

  3. ASP.NET全局文件与防盗链

    添加Web→全局应用程序类,注 文件名不要改 Global.asax 全局文件是对Web应用声明周期的一个事件响应的地方,将Web应用启动时初始化的一些代码写到 Application_Start中, ...

  4. asp.net MVC 网站图片防盗链的几种方法

    目录 1. 通过 URL Rewrite Module 组件 2. 通过 nginx 图片防盗链 3.自定义 HttpHandler 处理 4. 通过 MVC 自定义路由规则防盗链 5. 通过 MVC ...

  5. 第十三节:HttpHander扩展及应用(自定义扩展名、图片防盗链)

    一. 自定义扩展名 1. 前言 凡是实现了IHttpHandler接口的类均为Handler类,HttpHandler是一个HTTP请求的真正处理中心,在HttpHandler容器中,ASP.NET ...

  6. C#防盗链处理类的代码

    如下的内容是关于C#防盗链处理类的内容. public class FileHandler:IHttpHandler{public FileHandler(){} public void Proces ...

  7. HttpHandler实现网页图片防盗链

    using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...

  8. .net使用httpHandler添加图片防盗链

    .net使用httpHandler添加图片防盗链1. 配置web.config: <!--图片添加水印的配置--> <httpHandlers> <add verb=&q ...

  9. JAVA防盗链在报表中的应用实例

    今天我们来聊聊Java防盗链,多说无用,直接上应用案例. 这里所用的工具是报表软件FineReport,搭配有决策系统(一个web前端展示系统,主要用于权限控制),可以采用java防盗链的方式来实现页 ...

随机推荐

  1. SparkStreaming入门及例子

    看书大概了解了下Streaming的原理,但是木有动过手啊...万事开头难啊,一个wordcount 2小时怎么都运行不出结果.是我太蠢了,好了言归正传. SparkStreaming是一个批处理的流 ...

  2. HDU 2089 不要62(数位dp入门)

    题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个. 题解:这是数位DP的入门题了,首先要理解数DP的原理,DP[i][j]:代表第i位的第j值,举个栗子:如4715   数位数是从右向 ...

  3. stdlib

    system(pause): int cmp(const void *a ,const void *b) { return *(int *)a - *(int *)b ;          //从小到 ...

  4. java反射机制详解 及 Method.invoke解释

    JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为ja ...

  5. Linux网络流量监控工具-iftop

    参考:http://blog.163.com/jgh2008@126/blog/static/28596246201092081139283/ 一.获得和安装iftop Centos:yum inst ...

  6. 98、EditText 按键盘查询 触发事件

    只需要在XML在输入框中加入Android:imeOptions=”actionSearch”,调用软键盘时,回车键就会显示搜索二字. editSearch.setOnEditorActionList ...

  7. Ulipad和有道词典冲突的问题

    Ulipad和目前版本的有道词典有冲突,表现为先开有道词典,Ulipad就无法运行. 解决方法是:找到Ulipad安装目录下的config.ini,添加以下两行:   [server] port=50 ...

  8. [ActionScript 3.0] AS3.0 马赛克效果

    var bmpd:BitmapData; var matrix:Matrix; var bmp:Bitmap; var size:Number = 5; /** * @author:Frost.Yen ...

  9. C# String.Format大全 去 decimal 后面的 0

    转 http://kwon.iteye.com/blog/1068255  http://blog.csdn.net/tvvbbb/article/details/47256943 public st ...

  10. POJ 2096 【期望DP】

    题意: 有n种选择,每种选择对应m种状态.每种选择发生的概率相等,每种选择中对应的每种状态发生的概率相等. 求n种选择和m种状态中每种至少发生一次的期望. 期望DP好别扭啊.要用倒推的方法. dp[i ...