zoukankan      html  css  js  c++  java
  • ASP.NET 实现简单的图片防盗链介绍

    在此,网站图片防盗链的方法是,通过获取Http请求头中的 Referer 标头与本网站域名比较,来判断用户是否来自本站跳转过来的 。

    创建一个全局处理程序,用来处理images目录下的图片的直接请求:

    using System;
    using System.Web;

    /// <summary>
    ///DaoLian 的摘要说明
    /// </summary>
    public class DaoLian:IHttpHandler
    {
    public bool IsReusable
    {
    get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
    context.Response.ContentType = "image/jpeg";
    //
    //当前请求 的地址
    Uri url = context.Request.Url;
    Uri urlReferrer = context.Request.UrlReferrer;
    if (urlReferrer != null)
    {
    //判断域名和端口号是否相等
    if (IsSameDomain(url,urlReferrer))
    {
    //获取当前请求的图片的绝对路径
    string path = context.Request.MapPath(context.Request.RawUrl);
    context.Response.WriteFile(path);
    }
    else
    {
    //盗链图片的地址
    string path = context.Request.MapPath("../daolian.jpg");
    context.Response.WriteFile(path);
    }
    }
    else
    {
    //盗链图片的地址
    string path = context.Request.MapPath("../daolian.jpg");
    context.Response.WriteFile(path);
    }
    }
    //判断域名和端口号是否相等
    bool IsSameDomain(Uri url1,Uri url2)
    {
    return Uri.Compare(url1, url2, UriComponents.HostAndPort, UriFormat.Unescaped, StringComparison.CurrentCultureIgnoreCase) == 0;
    }
    }
  • 相关阅读:
    缺席多年的东哥,重回博客了
    使用VMware安装CentOS 7
    Linux CentOS 7 搭建 Tomcat 8 服务器
    海思HI3518EV200+AR0130开发板DIY——前篇
    Keyshot+AD渲染PCB效果图
    ESP8266/ESP32模块晶振频偏调试
    关于摄像头PCB图设计经验谈
    docker容器虚拟化技术
    数据分析章节(一):初始数学之美
    Nginx:反向代理
  • 原文地址:https://www.cnblogs.com/wangsai/p/4113337.html
Copyright © 2011-2022 走看看