zoukankan      html  css  js  c++  java
  • ASP.NET 图片防盗链的实现原理分析

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

    那么我来介绍下图片放盗链的一个方法
    首先,添加个httpHandlers请求,WEBCONFIG部分配置节如下:
    <httpHandlers>
    <add verb="*" path="*.jpg" type="myhandler,WebApplication5"/>
    </httpHandlers> 注意:对应于system.web之下,别添错了哦!
    然后添加个class,取名为myhandler继承于IHttpHandler
    class原型如下:


    复制代码 代码如下:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    public class myhandler : IHttpHandler
    {
    public void ProcessRequest(HttpContext context)
    {
    string FileName = context.Server.MapPath(context.Request.FilePath);
    if (context.Request.UrlReferrer.Host == null)
    {
    context.Response.ContentType = "image/JPEG";
    context.Response.WriteFile("~/images/no.png");//被替换图片
    }
    else
    {
    if (context.Request.UrlReferrer.Host.IndexOf("localhost") > -1)//这里是你的域名
    {
    context.Response.ContentType = "image/JPEG";
    context.Response.WriteFile(FileName);
    }
    else
    {
    context.Response.ContentType = "image/JPEG";
    context.Response.WriteFile("~/images/no.png");
    }
    }
    }
    public bool IsReusable
    {
    get { return true; }
    }
    public myhandler()
    {
    }
    }

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

  • 相关阅读:
    【数据结构】平衡二叉树之AVL树
    【数据结构】二叉排序树BST
    【数据结构】二叉树
    【算法】堆排序
    【数据结构】堆
    第五百八十一天 how can I 坚持
    第五百八十天 how can I 坚持
    第五百七十八、九天 how can I 坚持
    第五百七十七天 how can I 坚持
    第五百七十五、六天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2216008.html
Copyright © 2011-2022 走看看