全局图片防盗链处理

摘要:
概念:防盗链是指用户不经过我们的网站直接访问我们的图片我们给他一个错误的图片处理原理:获取当前与上一次请求的url对其进行网站域名与端口号比较如果相同则返回真实图片(如果从别的网站链接过来不可能返回true)否则返回错误图片过程:1、新建一个一般处理程序处理2、在webconfiguration中添加httpHandlers节点信息publicvoidProcessRequest(HttpCont
概念:防盗链是指用户不经过我们的网站直接访问我们的图片 我们给他一个错误的图片处理
原理:获取当前与上一次请求的url 对其进行网站域名与端口号比较 如果相同则返回真实图片(如果从别的网站链接过来不可能返回true)否则返回错误图片
过程:
1、新建一个一般处理程序处理
2、在webconfiguration中添加httpHandlers节点信息
全局图片防盗链处理第1张全局图片防盗链处理第2张
public voidProcessRequest(HttpContext context)
    {
        context.Response.ContentType="image/jpeg";
        //当前请求
        Uri url =context.Request.Url;
        //上一次请求
        Uri referrer =context.Request.UrlReferrer;
        if(CompareUrl(url,referrer))
        {
            //合法
            //string path = context.Request.MapPath(context.Request.RawUrl);
context.Response.WriteFile(url.AbsoluteUri);
        }
        else{
            string path = context.Request.MapPath("daolian.jpg");
            context.Response.WriteFile(path);
        }
    }
 
    private boolCompareUrl(Uri u1, Uri u2)
    {
        return Uri.Compare(u1, u2, UriComponents.HostAndPort, UriFormat.SafeUnescaped, StringComparison.CurrentCultureIgnoreCase) == 0;
    }
一般处理文件
全局图片防盗链处理第3张全局图片防盗链处理第4张
 <system.web>
       <httpHandlers>
      //此处的type中全写  第一个参数是 命名空间+类 第二个参数是程序集名称  path为访问哪个文件夹中的文件 
        <add verb="*" type="FangDaoLian" path="images/*.jpg"/>
      </httpHandlers>
 </system.web>
Webconfig

免责声明:文章转载自《全局图片防盗链处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spark2.1集群安装(standalone模式)thinkphp3.2.3版本文件目录及作用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AutoMapper(三)

返回总目录 自定义类型转换 有时,需要完全控制一个类型到另一个类型的转换。一个类型一点都不像另一个类型,而且转换函数已经存在了,在这种情况下,你想要从一个“宽松”的类型转换成一个更强壮的类型,例如一个string的源类型到一个int32的目标类型。 这里有两个类Source和Destination,要把前者映射到后者,代码如下: public class...

canvas基础绘制矩形(1)

1、canvas基础知识 canvas元素是HTML5中新增的一个重要的元素,专门用来绘制图形,不过canvas本身不具备画图的能力,在页面中放置了canvas元素,就相当于在页面中放置了一块矩形的“画布”,我们可以利用js脚本在“画布”上绘制图形。 1.1canvas元素  在利用canvas绘制图形之前,我们首先需要在页面中放置一个canvas元素,...

前端导出功能实现的两种方式

1.点击链接 数据、文件格式全部在后台封装好,返回给前端一个链接,前端通过点击链接自动下载,两种方式: 1 (1)window.location.href = ‘url’ 2 (2)<a href='http://t.zoukankan.com/url' download=''></a> 2.解析后台返回的文件流 这种方式就是后台将...

requests.exceptions.SSLError: HTTPSConnectionPool(host='cn.bing.com', port=443)报错解决方案

一、问题描述 运行以下代码 #!/usr/local/bin/python3.7 import requests import ssl # 请求url url = 'https://cn.bing.com/tlookupv3?isVertical=1&&IG=1E1AE90B09BB41E28506E0ADC9E45704&II...

Resttemplateget带特殊字符调用 异常处理总结

Resttemplateget带特殊字符调用 异常处理总结 Resttemplate设置Accept RestTemplate restTemplate = new RestTemplate(); HttpHeaders httpHeaders = new HttpHeaders(); List<MediaType> acceptableMed...

Django实战(二)之模板语言

该实战教程基于菜鸟教程,菜鸟教程可参考:http://www.runoob.com/django/django-template.html 模板语法,每个框架都有其支持的模板语法,Django的模板语法在我看来与vue.js倒有一些相似处 ,比如它们的模板语法中参数为{{parm}}。 本篇所用到的例子,仍然基于实战(一) 在HelloWorld(该文件夹...