`
xylw
  • 浏览: 57990 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
文章分类
社区版块
存档分类
最新评论

盗链问题

 
阅读更多
盗链 的危害我就不说了,网上有很多。

直接分析盗链原理 :看下面用httpwatch 截获的http发送的数据

GET /Img.ashx?img=svn_work.gif HTTP/1.1
Accept: */*
Referer: http://www.svnhost.cn/
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)
Host: www.svnhost.cn
Connection: Keep-Alive

该数据包表示请求http://www.svnhost.cn/Img.ashx?img=svn_work.gif 文件。我们可以看到Referer表示上一页请求页面地址,也就是文件来源。Host表示当前请求的主机地址。

下面是一个盗链的数据包

GET /Img.ashx?img=svn_work.gif HTTP/1.1
Accept: */*
Referer: http://745.cc/
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)
Host: www.svnhost.cn
Connection: Keep-Alive

我们可以看到,上面两个数据,表示对于同一个文件:http://www.svnhost.cn/Img.ashx?img=svn_work.gif 的请求过程,这里的不同就是Referer,也就是都是请求同一个文件,但是请求的来源是不同的。因此我们可以在程序里判断是否是来源于当前服务器,来判断是否是盗链。 明白原理以后,实现防盗链 就非常简单了。下面以图片防盗链 来实现一个演示。ASP.NET中添加一个img.ashx文件,然后后台代码如下:

using System;   
using System.Collections;   
using System.Data;   
using System.Web;   
using System.Web.Services;   
using System.Web.Services.Protocols;   
  
namespace GetImage   
{   
    /// <summary>   
    /// $codebehindclassname$ 的摘要说明   
    /// </summary>   
    [WebService(Namespace = "http://tempuri.org/")]   
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]   
    public class Img : IHttpHandler   
    {   
  
        public void ProcessRequest(HttpContext context)   
        {   
            context.Response.ContentType = "image/jpg";   
            if (context.Request.UrlReferrer != null && context.Request.UrlReferrer.Host.Equals(context.Request.Url.Host, StringComparison.InvariantCultureIgnoreCase))   
                context.Response.WriteFile(context.Server.MapPath("~/" + context.Request.QueryString["img"]));   
            else  
                context.Response.WriteFile(context.Server.MapPath("~/logo.gif"));   
        }   
  
        public bool IsReusable   
        {   
            get  
            {   
                return false;   
            }   
        }   
    }   
}  

表示如果来源不为空,并且来源的服务器和当前服务器一致,那就表示是正常访问,非盗链。正常访问文件内容。

否则就是盗链,返回网站LOGO。

你甚至可以做成随机返回正确的图片,随机返回错误图片,或者定时返回正确图片,定时返回错误图片。

然后就是图片的使用了,这时使用图片就不是直接<input type="image" src="svn_work.gif " />了,而是<input type="image" src="/Img.ashx?img=svn_work.gif " />,就是说通过img,ashx来读取图片。别人盗链的话要用下面代码:<input type="image" src="http://www.svnhost.cn/Img.ashx?img=svn_work.gif " />。

赶紧给自己的网站加上防盗链吧!

public class Class1 : IHttpHandler   
{   
    bool IHttpHandler.IsReusable   
    {   
        get { return true; }   
    }   
  
    public void ProcessRequest(HttpContext context)   
    {   
        try  
        {   
            if (context.Request.UrlReferrer.Host == "localhost1")   
            {   
                context.Response.Expires = 0;//设置客户端缓冲中文件过期时间为0,即立即过期。   
                context.Response.Clear();//清空服务器端为此会话开辟的输出缓存   
                context.Response.ContentType = "jpg";   
                context.Response.WriteFile(context.Request.PhysicalPath);//将请求文件写入到服务器端为此会话开辟的输出缓存中   
                context.Response.End();//将服务器端为此会话开辟的输出缓存中的信息传送到客户端   
            }   
            else //如果不是本地引用,则属于盗链引用,返回给客户端错误的图片   
            {   
                context.Response.Expires = 0; //设置客户端缓冲中文件过期时间为0,即立即过期。   
                context.Response.Clear();//清空服务器端为此会话开辟的输出缓存   
                context.Response.ContentType = "jpg";//System.Security.Cryptography.Pkcs.ContentInfo.GetContentType("error.jpg"); //获得文件类型   
                context.Response.WriteFile("error.jpg");//将特殊的报告错误的图片文件写入到服务器端为此会话开辟的输出缓存中   
                context.Response.End();//将服务器端为此会话开辟的输出缓存中的信息传送到客户端   
            }   
        }   
        catch (Exception)   
        {   
        }   
    }   
}  
分享到:
评论

相关推荐

    网站防盗链保护伞 v1.2

    致力于彻底解决虚拟主机盗链问题开发的全国技术领先的软件,主要针对的对象是:电影网站、音乐网站、文件下载网站等站长、ICP内容提供商、虚拟主机提供商等有需要的用户主要功能列表:1、支持中文文件名的防盗链保护...

    盗链是视频行业的绝症么?—Android_APP视频防盗链的N种姿势.pdf

    而在传统的解决方案中无论是频繁更换服务器的控制策略,还是传统的安全加固,这些手段又可能会引起视频客户端的兼容性问题,盗链真的是视频行业的绝症么?针对Android APP,议题全面解析了如何针对视频客户端APP视频...

    泡泡影视城 v0.3

    4.新增的电影防盗链系统,具有电影链接批量更换的功能,有效防止电影的被别人盗链问题5.电影播放器页面已经经过双重加密保护,播放页面源代码加密,以及电影地址加密保护,使别人无法取得电影的真实地址。6.网友可以...

    龙爪手--盗链工具

    由于编译环境问题只支持xp.2003系统先打开软件——&gt;打开你想盗连的音乐网站(或者下载网站)——&gt;点软件开始——&gt;随便选一首歌曲播放试听——&gt;拦截到数据! 注意只支持Xp.2003操作系统!有的2000系统能运行``有的不能`...

    三招两式 解决图片盗链无法查看问题

    有些粗心大意的人转贴时,简单地把图片复制了过来。可如果该网站的图片设置为防止外部链接,我们遇到转载的好帖,又找不到原出处,难道只有哀叹的份么?

    java 过滤器

    用java写的过滤器 针对盗链问题 很适合初学 有详细的注释

    wx-image-bridge:解决微信等网站图片防盗链的问题

    wx-image-bridge解决微信外链公众号图片防盗链图片无法正常展示的问题,其他网站的图片应该也适用,未测试。使用方法在启动服务后,将图片地址按如下格式拼接在服务器地址后,可以正常访问。示例:...

    Photobucket Hotlink修正「Photobucket Hotlink Fix」-crx插件

    扩展来解决Photobucket中的盗链问题,不需要用这个扩展支付,图像将继续加载。 扩展来解决Photobucket中的盗链问题,不需要用这个扩展支付任何东西,所有的图像将继续加载,没有任何P500图像。如果它不适合你,请...

    电子资源反批量爬取及防盗链技术研究

    电子资源反批量爬取及防盗链技术研究,杨玉军,杨夷梅,随着网络的迅速普及,资源建设逐渐数字化,但数字化资源的爬取和盗链问题一直存在,因此,研究电子资源的反批量爬取和防盗链技术

    UUFTP防盗链插件精简试用版(UUFTP AntiLink for Serv-U V Base1

    彻底解决Serv-U盗链问题。无需数据库、安装简单、效率高。是软件ftp下载,电影ftp下载的最好的工具。该版本为精简试用版,除了具有精简正式版的基本功能外,不提供每用户线程限制以及下载速度限制,Web和FTP服务必须...

    若界音乐盗链助手 v1.5

    若界音乐盗链助手支持多家音乐网站外链,此版本歌曲播放速度比之前的版本快几倍,歌曲地址比之前版本短几倍使用中如果有什么问题可以到我博客咨询~或者加QQ群~ ,转换后的地址支持贴到QQ空间(免开绿钻)、论坛等地方...

    Asp.net防止盗链的实现原理分析

    今天在书上偶然看到了如何实现防盗链的问题,到网上查看了一下盗链主要是其他的一些网站引用本站图片或者下载链接。

    其他类别PHP防图片盗链程序-script.rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、...【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    [其他类别]PHP防图片盗链程序_script.rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、...【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    铺宝贝复制软件 零壹淘宝店铺宝贝复制软件 v2016

    零壹淘宝店铺商品复制专家是专门针对淘宝掌柜开发的一款产品.可以复制任意淘宝店铺的商品(包括商城店铺).复制的商品信息完整.包括商品基本信息,销售属性等,并自动处理盗链问题

    使用php伪造referer的方法 利用referer防止图片盗链

    什么是HTTP Referer简言之,HTTP Referer是header的一部分,当浏览器向web...我的问题我刚刚把feed阅读器改变为Gregarius,但他不像我以前用的liferea,访问新浪博客的时候,无法显示其中的图片,提示“此图片仅限

    程序源码 穷小子asp.net音乐盗链程序_mp3(ASP.NET源码).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累... 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。

    基于HTML实现其他类别网站_PHP防图片盗链程序_script(HTML源码+数据集+项目使用说明).rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、...【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

Global site tag (gtag.js) - Google Analytics