本文作者:心月

web资源盗链与防盗链技术解析

心月IT博客 2019-03-07
摘要:什么是资源盗链?简单的说,就是某些不法的网站,通过在其自身网站程序里未经过许可非法调用其他网站的资源,然后在自己的网站上显示这些调用的资源,达到了填充自身网站显示的效果,但是浪费了调用资源网站的网络流量,造成其他网站的带宽及服务压力吃紧,甚至宕机。

1、什么是资源盗链

简单的说,就是某些不法的网站,通过在其自身网站程序里未经过许可非法调用其他网站的资源,然后在自己的网站上显示这些调用的资源,达到了填充自身网站显示的效果,但是浪费了调用资源网站的网络流量,造成其他网站的带宽及服务压力吃紧,甚至宕机。


2、模拟盗链与防盗链

实验环境:本地apache

php版本:php5.5.38


先在本地建立两个模拟站点,一个资源模拟站点(test1.com),一个盗链站点(test2.com),两个站点情况如下:

模拟盗链与防盗链模拟盗链与防盗链

防盗链处理前,从下面的Referer中可以发现,模拟资源站点和模拟盗链站点都可以正常请求资源站点的资源。

防盗链模拟

.htaccess防盗链处理

RewriteEngine On
RewriteCond %{HTTP_REFERER} !test1.com [NC]
RewriteRule .*.(html)$ http://test1.com/error.txt [R,NC,L]

RewriteCond %{HTTP_REFERER} !test1.com [NC] 这一行表示请求来源不是test1.com这个站点。

RewriteRule .*.(html)$ http://test1.com/error.txt [R,NC,L]这一句表示,请求的html页面来源不是test1.com将跳转到http://test1.com/error.txt这个页面。

这里为了模拟方便用的是html页面防盗链,其他文件防盗链只需将(html)里的html换成文件后缀即可,多种文件防盗链用"|"隔开,如(zip|png|gif);

下图是通过.htaccess防盗链处理后,再次请求的情况,从图中可以明显的看出,防盗链处理后,无法通过站外访问站内资源,通过站外盗链访问站内资源时会自动转向我们设定的盗链提示页面,但依然可以通过站内访问站内资源。

模拟防盗链

盗链与防盗链的实现原理大致是这样的,在后面的文章中心月IT技术博客会继续分享防盗链的其他方法。

3、为什么会出现盗链

    一般浏览一个页面并不是一次全部传送到客户端的,而是最先的一个http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现还有图片,那么客户端的浏览器会再发送一条http请求,当这个请求被处理后那么这个图片文件会被传送至客户端,然后浏览器会将图片安放到页面的正确位置,这样一个完整的页面经过发送多条http请求才被完整的显示。从上面的模拟实验中在做防盗链前,虽然两个测试站点都能正常请求访问downloadfile1,但二者的请求来源却不一样,正是基于这样的机制,所以就产生了盗链问题。盗链不仅损害了原网站的合法利益,还加重了服务器的负担,同时也还会影响网站数据的统计,尤其对统计数据有严格要求的网站。

4、盗链的大致分类

最多的是两类盗链,图片盗链(gif、.jpg、.png等)和文件盗链(各种下载文件)。被一个访问量极大的网站盗用,会消耗不少的带宽。其他盗链包括:音频盗链、视频盗链。

5、盗链的防范

本文中的模拟防盗链中防盗链方法只是针对虚拟主机的简单防盗链,后面会心月IT博客会分享更多其他的防盗链方法。

文章版权及转载声明:

作者:心月 本文地址:http://www.xinyueseo.com/websecurity/161.html发布于 2019-09-07
文章转载或复制请以超链接形式并注明出处心月IT博客

分享到:
赞(

发表评论

快捷输入:

    评论列表 (有 0 条评论,人围观)参与讨论