zoukankan      html  css  js  c++  java
  • 图片防盗链

    在此,网站图片防盗链的方法是,通过获取Http请求头中的 Referer 标头与本网站域名比较,来判断用户是否来自本站跳转过来的
    
    创建一个全局处理程序,用来处理images目录下的图片的直接请求
    
    
    View Code
     1 using System;
     2 using System.Web;
     3 
     4 /// <summary>
     5 ///DaoLian 的摘要说明
     6 /// </summary>
     7 public class DaoLian:IHttpHandler
     8 {
     9     public bool IsReusable
    10     {
    11         get { return false; }
    12     }
    13 
    14     public void ProcessRequest(HttpContext context)
    15     {
    16         context.Response.ContentType = "image/jpeg";
    17         //
    18         //当前请求 的地址
    19         Uri url = context.Request.Url;
    20         Uri urlReferrer = context.Request.UrlReferrer;
    21         if (urlReferrer != null)
    22         {
    23             //判断域名和端口号是否相等
    24             if (IsSameDomain(url,urlReferrer))
    25             {
    26                 //获取当前请求的图片的绝对路径
    27                 string path = context.Request.MapPath(context.Request.RawUrl);
    28                 context.Response.WriteFile(path);
    29             }
    30             else
    31             {
    32                 //盗链图片的地址
    33                 string path = context.Request.MapPath("../daolian.jpg");
    34                 context.Response.WriteFile(path);
    35             }
    36         }
    37         else
    38         {
    39             //盗链图片的地址
    40             string path = context.Request.MapPath("../daolian.jpg");
    41             context.Response.WriteFile(path);
    42         }
    43     }
    44     //判断域名和端口号是否相等
    45     bool IsSameDomain(Uri url1,Uri url2)
    46     {
    47         return Uri.Compare(url1, url2, UriComponents.HostAndPort, UriFormat.Unescaped, StringComparison.CurrentCultureIgnoreCase) == 0;
    48     }
    49 }

    在web.config中添加图片文件处理的HttpHander

    <system.web>
    <httpHandlers>
    <add path="*.jpg,*.jpeg,*.gif,*.png,*.bmp" verb="*" type="DaoLian" />
    </httpHandlers>
    </system.web>
    
    
  • 相关阅读:
    阿里巴巴研究员叔同:云原生是企业数字创新的最短路径
    【OpenYurt 深度解析】边缘网关缓存能力的优雅实现
    K8s 原生 Serverless 实践:ASK 与 Knative
    一年增加 1.2w 星,Dapr 能否引领云原生中间件的未来?
    源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的
    绘本推荐
    油猴Tampermonkey
    lan蓝tern灯
    6岁叛逆期
    留白
  • 原文地址:https://www.cnblogs.com/dedeyi/p/2644705.html
Copyright © 2011-2022 走看看