盗链,可耻啊

         最近发现一直在维护的行业网站,突然在百度的排名下降了很多,甚至前几页都找不到,而且流量也没以前多了,服务器经常假死,网站出现打不开的情况,经过排查,才发现,原来网站被别人用框架盗链了,汗!

        所谓的盗链就是服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
通俗的说就是把别人的网站上资源直接链接到自己的网站上使用,这些资源还是在别人的服务器里,并没有放到自己的服务器里,只是做个链接链到自己的网站上,举个例子,如果是自己网站使用自己服务器里的资源,比如是图片,那么代码应该这样写:<img src="images/pic.jpg" />,然而如果是盗链,比如盗链http://www.abc.com/里的图片,代码就会这样写<img src="http://www.abc.com/image/pic.jpg" />,所以可以看出,被盗网站的数据量访问大了,可是网站访问量少了,占用了被盗网站的宽带量,导致网站瘫痪,不能正常访问常见的盗链有图片盗链、音频盗链、视频盗链、文件盗链。 还有一种就是整站被盗链,使用iframe框架将网站域名链接上去,别人打开的时候就直接打开盗链的网站

     

既然找到了原因,也就相应的找到了解决了办法,既然是被盗链,那来源一定不是正确,所以主要判断域名和服务器即可

    下面就来简单看看如何防止网站的背部资源被盗链,就是图片了,视频了等,可以在httphandler中作相应的判断

   

ExpandedBlockStart.gif View Code
using System.Web;
using System;
public  class Handler : IHttpHandler
{

     public  void ProcessRequest(HttpContext context)
    {
         // 判断是否是本地引用,如果是则返回给客户端正确的图片
        
// 这里的判断就是用到了http请求中所记录的页信息
        
// 如果是网站,可将“localhost”修改为网站地址
         if (context.Request.UrlReferrer.Host ==  " localhost ")
        {
             // 设置客户端缓冲中文件过期时间为0,即立即过期。
            context.Response.Expires =  0;
             // 清空服务器端为此会话开辟的输出缓存
            context.Response.Clear();
             // 获得文件类型
            context.Response.ContentType =  " image/jpg ";
             // 将请求文件写入到输出缓存中
            context.Response.WriteFile

(context.Request.PhysicalPath);
             // 将输出缓存中的信息传送到客户端
            context.Response.End();
        }
         // 如果不是本地引用,则属于盗链引用,返回给客户端错误的图片
         else
        {
             // 设置客户端缓冲中文件过期时间为0,即立即过期。
            context.Response.Expires =  0;
             // 清空服务器端为此会话开辟的输出缓存
            context.Response.Clear();
             // 获得文件类型
            context.Response.ContentType =  " image/jpg ";
             // 将特殊的报告错误的图片文件写入到输出缓存中
            context.Response.WriteFile

(context.Request.PhysicalApplicationPath +  " error.jpg ");
             // 将输出缓存中的信息传送到客户端
            context.Response.End();
        }
    }
     public  bool IsReusable
    {
         get
        {
             return  true;
        }
    }

 

web.config

<add verb="*" path="*.jpg" type="Handler"/>

有一点要说一下,图片加水印,虽然也是防止图片被别的网站盗用,但是两者有本质的区别...

不同的盗链可以采用不同的方法解决

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值