什么是图片盗链

  一般的浏览现象,其中最重要的一点就是一个完整的页面并不是一次全部传送到客户端的。如果你请求的是一个带有许多图片和其他信息的页面,那么最先的一个HTTP请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条HTTP请求,当这个请求被处理后这个图片文件会被传送到客户端,然后浏览器会将图片安放到页面的正确的位置,就这样一个完整的页面也许要经过发送多条HTTP请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是 盗链 问题:

  就是一个网站中如果没有页面中所说的信息,例如图片信息,那么它完全可以将这个图片连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高自己的访问量,而大部分浏览者又不会很容易地发现,显然,这对于那个被利用资源的网站是不公平的

解决方案

  现在利用ASP.NET中的HttpHandler能够很好地解决这个问题,之所以能够发生这个问题,就是因为我们在默认状态下只处理那些动态的网页,像asp、aspx等,但当有请求一个图片文件时,IIS就会直接提取资源并发送给客户端,这样看来就显得有些盲目了,所以要创建自己的HttpHandler来处理图片文件

  • 附上代码思路:创建一般处理程序来处理我们的文件
using System.Web;//省略命名空间public class Handler : IHttpHandler
{public void ProcessRequest(HttpContext context){//判断是否是本地引用,如果是则返回给客户端正确的图片//这里的判断就是用到了HTTP请求中所记录的参考也的信息if (context.Request.UrlReferrer.Host=="localhost"){//设置客户都安缓存文件过期时间为0,即立即过期context.Response.Expires = 0;//清空服务前端为此会话开辟的输出缓存context.Response.Close();//将请求文件写入到服务器端为此会话开辟的输出缓存中context.Response.WriteFile(context.Request.PhysicalPath);//将服务端为此会话开辟的输出缓存中的信息传送到客户端context.Response.End();}else //如果不是本地引用,则属于盗链引用,返回非客户端错误的图片{context.Response.Expires = 0;context.Response.Close();context.Response.ContentType = "图片名称";//将特殊的报告错误的图片文件写入服务器端为此会话开辟的输出缓存中context.Response.WriteFile("error.jpeg");context.Response.End();}}public bool IsReusable{get{return false;}}
}

ASP.NET_阻止图片盗链相关推荐

  1. 【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链 (转)

    你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽.下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义Ro ...

  2. Asp.net MVC防止图片盗链的实现方法,通过自定义RouteHandler来操作

    本文告诉你如何在ASP.NET MVC中实现一个自定义RouteHandler来防止其他人盗链你的图片. 首先,我们来回顾一下当一个请求发往ASP.net MVC站点时的情景,IIS收到请求并将请求转 ...

  3. ASP.NET2.0雷霆之怒盗链者的祝福【月儿原创】

    ASP.NET2.0雷霆之怒盗链者的祝福 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.3.28 所谓盗链就是指其他网站把我们 ...

  4. HttpHandler应用之 防止图片盗链

    httpHandler 是特别类的一种,可以处理对特定类型文件的请求.实际上甚至可以通过创建自己的处理器来处理对.aspx 页面的请求,将整个页面的处理系统换掉.下面我们就用HttpHandler 来 ...

  5. ASP NET2 0雷霆之怒盗链者的祝福【月儿原创】

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! ASP. ...

  6. asp.net网站图片防盗链机制示例代码

    经常大家都会在某些网站上看到,该图片属于XXX网站,请到XXXX浏览的一张图片,其实这是一张外链图片,什么意思呢?就是该图片实际上是不属于这个网站的,这个网站只是造了一个图片的链接来显示图片,但是对方 ...

  7. php如何打开图片的权限,php如何控制用户对图片的访问 PHP禁止图片盗链 php技巧...

    把images目录设置成不充许http访问(把图片目录的:读取.目录浏览 两个权限去掉). 用一个PHP文件,直接用file函数读取这个图片.在这个PHP文件里进行权限控制. apache环境中,在你 ...

  8. php如何控制用户对图片的访问 PHP禁止图片盗链

    本文摘自网络仅供学习只用 本人根据教程总结了一下https://www.imooc.com/video/13412 主要是利用apache的htacess进行控制,,拿什么判断是不是通过本站点访问的呢 ...

  9. 利用Cookie Stuffing让图片盗链者为我们赚钱

    最近没神马好的思路来更新wordpress教程,索性水一贴其他教程~,看到首先魔客吧来解释下什么是cookie stuffing. cookies是通过html中header(头部信息)传递的,除非浏 ...

最新文章

  1. DFS(深度优先搜索)
  2. FastReport.Net 入门
  3. 开启win7 FTP 服务 无法登陆的原因
  4. Linux 7 cmake:curses library not found
  5. 贾扬清谈云原生-让数据湖加速迈入3.0时代
  6. git新建分支并且在切换分支开发
  7. andorid 回调的理解
  8. EOG眼电信号(眨眼检测)
  9. 根据经纬度计算两点间的距离_全班学生被此奥数题难倒,理解两点间距离公式的几何意义是关键...
  10. ERP技术在财务信息化转型中应用探讨
  11. 小米路由mpk插件二维码_小米WiFi6路由器新品:修改密码自动同步已连接设备,这功能不错...
  12. python程序设计基础电子书_python程序设计基础 pdf下载
  13. 在线vim配色加term与gui统一颜色调整python脚本
  14. excel-按条件向下填充
  15. 甜在心馒头店通过泊松分布解决备货烦恼
  16. Hulu俱乐部分享之兴趣篇
  17. 使用Bookinfo应用测试Kuma服务网格
  18. spring data jpa 多表UNION ALL查询按条件排序分页处理:未搜到方法,解决后记录:2018年11月13日15:22:00
  19. 高红梅:第三章 第二节 身份焦虑与英雄梦
  20. 判断手机号码vue_判断手机号运营商

热门文章

  1. C++之_In_和_out_
  2. android系统的alarm机制,Android中Alarm的机制
  3. 漫画|图灵奖是怎么来的?
  4. 程序员必看内容连续集之 SpringBoot05 整合DruidRedis
  5. 【炉石传说】用c语言编写燃烧权杖模拟器
  6. 解锁、唤醒屏幕用到KeyguardManager,KeyguardLock,PowerManag
  7. DeviceIoControl
  8. SAP WM初阶之事务代码LQ02
  9. 介绍Android中的Paint和Canvas的概念和使用方法
  10. 你有没有感觉到自己的记忆力下降的很厉害