谈谈网站防盗链

谈谈网站防盗链#开启重写引擎RewriteEngineon#图片防盗链RewriteCond%{HTTP_REFERER}!http://rewrite/.*RewriteRule.*\.(jpg|jpeg|png|gif)daotu.jpg引子:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟

大家好,又见面了,我是你们的朋友全栈君。

    #开启重写引擎  
    RewriteEngine on  
    #图片防盗链  
    RewriteCond %{HTTP_REFERER} !http://rewrite/.*  
    RewriteRule .*\.(jpg|jpeg|png|gif)  daotu.jpg  

引子:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”(下图便是网易博客的防盗链效果)。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。


谈谈网站防盗链


一、什么是防盗链系统
        在确保地址正确的情况下,不能下载相应的资源,均是受到防盗链系统的影响,那么究竟什么是防盗链系统呢?防盗链自然就是防范盗链,所以这里先说一下什么是盗链。

       
盗链是指在自己的页面上展示一些并不在自己服务器上的内容。通常的做法是通过技术手段获得它人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。比较常见的是一些小站盗用大站的资源(图片、音乐、视频、软件等),对于这些小站来说,通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器。
       
防盗链系统就是防范盗链的系统,防止别人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源链接失效。实施防盗链系统后,因为屏蔽了那些盗链的间接资源请求,从而可以大大减轻服务器及带宽的压力,也正如此,越来越多的站点都开始实施防盗链技术。
       
二、窥视防盗链
        现在大家应该知道了为什么有真实地址仍然不能下载,这就是防盗链的作用。凡事必有因果,
为什么可以防盗链呢,其实现原理是什么?防盗链又是如何实现的呢?
        提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。

如果想对自己的网站进行防盗链保护,则需要针对不同的情况进行区别对待。
如果网站服务器用的是apache,那么使用apache自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查refer,如果refer的信息来自其他网站则重定向到指定图片或网页上。
.htaccess文件中加入下配置

    <span style="color:#009900;">#开启重写引擎  
    RewriteEngine on  
    #图片防盗链  
    RewriteCond %{HTTP_REFERER} !http://rewrite/.*  
    RewriteRule .*\.(jpg|jpeg|png|gif)  daotu.jpg</span>  
        如果服务器使用的是IIS的话,则需要通过第三方插件来实现防盗链功能了,现在比较常用的一款产品叫做ISAPI_Rewrite,可以实现类似于apache的防盗链功能。另外对于论坛来说还可以使用“登录验证”的方法进行防盗链。
       
三、以子之予攻子之盾,防盗链的激活成功教程

        尽管防盗链技术越来越成熟,激活成功教程相对来说难度较大,但在了解原理之后,大多都可以针对其防范的原理入手进行激活成功教程。
        对于图片防盗链,已经有人给出了详细的激活成功教程代码,对应的代码页面笔者已上传到笔者以前的个人博客空间中,在转发图片时,在图片地址前面加上“http://www.z7z8.com.cn/old/pic.asp?url=”地址即可解决图片防盗链问题。如果有自己的网站空间可以直接从
http://www.z7z8.com.cn/old/pic.zip下载,解压后上传到自己的空间中,转贴时在图片地址前面加上“域名/路径/pic.asp?url=”即可。

对于文件资源的防盗链,可以通过人为的加上引用页的方法来解决不能下载的问题,如获得
http://www.z7z8.com.cn/old/pic.zip这一地址,下载时发现采用了防盗链技术,这时可以在新建下载任务时人为添加“引用页:”。因为绝大多数防盗链只是判断引用页是不是本站,所以这一方法可以突破防盗链进行下载,但不是所有情况下均有效。


谈谈网站防盗链

默认情况下,迅雷的新建任务对话框中是没有“引用页”项的,需要在迅雷中执行“工具→配置”,在打开的“配置面板”对话框中,在“任务默认属性”标签中,勾选“新建面板显示引用页”复选框即可。


谈谈网站防盗链

小提示:

        上面讨论的只是较初级的防盗链也激活成功教程,随着技术的日新月异,防盗链技术也飞速发展,因此现在的防盗链技术也要先进、复杂得多了。所以上面提到的激活成功教程方法并不一定针对所有的防盗链情况适用。

参考自
http://windyli.blog.51cto.com/1300305/315283

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163497.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • android 获取收到短信验证码,Android自动获取短信验证码

    android 获取收到短信验证码,Android自动获取短信验证码如此当有短信收到时就可以将短信内容写到SD卡中的文件里在另一个java类中写个读取文件内容的方法,并在写测试用例过程中,将得到的String按验证码的具体位置截取即可。publicStringread(Stringstr)throwsIOException{Filefile=newFile(str);FileInputStreamfis=newFileInputStream(fi…

  • 配置catalina.out的日志格式[通俗易懂]

    配置catalina.out的日志格式[通俗易懂]启动Tomcat时,catalina.out中输出的日志格式可能不太理想。看看某些版本默认的格式:四月24,20186:49:32下午org.apache.catalina.startup.Catalinastart信息:Serverstartupin9772ms有点别扭,想要调整成下面的格式:24-Apr-201818:52:16.13…

  • HC32F460开发之rtthread+finsh组件的移植

    HC32F460开发之rtthread+finsh组件的移植文章目录前言一、RT-Thread简介二、rtthread的移植1.裸机例程2.RT-Thread下载2.RT-Thread移植总结前言对于从事单片机的开发人员,操作系统可以说是绕不过的一个必修课程。在稍复杂的应用开发中,一个好的操作系统可以帮助我们将单片机的资源最大化的利用起来,而系统提供的各种API接口也可以可靠地帮我们实现各种应用逻辑功能。日常生活里,在各种各样的电子设备中,操作系统被广泛地应用,常见的有Linux,ucos,以及现在在各种物联网设备中被广泛应用的freertos,RT-Thre

  • Spring系列博客汇总

    Spring系列博客汇总https://www.cnblogs.com/leeSmall/category/1093236.htmlspringmvchttps://www.cnblogs.com/leeSmall/ca

  • Mybatis 查询结果类型为char时候:Cause: java.lang.StringIndexOutOfBoundsException: String index out of range: 0…「建议收藏」

    Mybatis 查询结果类型为char时候:Cause: java.lang.StringIndexOutOfBoundsException: String index out of range: 0…「建议收藏」Mybatis 查询结果类型为char时候:Cause: java.lang.StringIndexOutOfBoundsException: String index out of range: 0…

  • think in java一_Think in Java(一):Java基础「建议收藏」

    think in java一_Think in Java(一):Java基础「建议收藏」一.OOP的特点(1)万物皆为对象;(2)程序是对象的集合,他们通过发送信息来告诉彼此所要做的;(3)每个对象都有自己的由其他对象所构成的存储;(4)每个对象都拥有它的类型;(5)某一特定类型的对象都可以接收同样的消息;二.Java比C++简单?(1)Java有垃圾回收器,不用手动销毁对象;(2)Java使用单根继承;(3)Java只能以一种方式创建对象(在堆上创建);三….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号