• 【IHttpHandler】使用IHttpHandler防盗链


         防盗链的原理,从图片请求的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. 
      

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

  • 相关阅读:
    微信分享功能开发代码整理
    js 完美兼容浏览器的复制功能
    linux 搭建svn服务器
    zendStudio安装Xdebug项目断点调试
    程序员开发常用英语词汇
    简单的一个远传采集并下载远传图片存储到本地示例
    form表单中经常用到的禁用获取值问题
    记录下url拼接的多条件筛选js
    better-scroll在vue中的使用
    移动端适配,引入lib-flexible,vue开发中将px转化为rem
  • 原文地址:https://www.cnblogs.com/jx270/p/4212233.html
Copyright © 2020-2023  润新知