防止盗用资源流量外泄

有的人会把一个站点的认为有用的或者好看图片或者其他的,就比如说把图片的地址会引用到其他的站点,但它实际走的流量是它图片所在地址的网站,而不是所引用到的站点,如果访问量特别大的话,就会对网站的带宽有很大消耗,这种情况,就作一个限制,防止网站图片被盗用,这就叫做防盗链。

## 假如说正常的话应该是www.test.com,若不是这个,则网页中的图片就不会显示。

[root@wy ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

WEBRESOURCE3fab61a0c4440813e02989d6fb9fb

## 检查并重新加载

[root@wy ~]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@wy ~]# /usr/local/apache2/bin/apachectl graceful

## 查看网页

WEBRESOURCE901754c15892120d67f467cf518b2

## 若设置白名单的时候,一定要写上自己网站的,这样就防止自己的资源被盗

[root@wy ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref

   SetEnvIfNoCase Referer ".*\.aaa\.com" local_ref

   SetEnvIfNoCase Referer "^$" local_ref

   <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|jpeg|png|gif|js|css)">

       Order Allow,Deny

       Allow from env=local_ref

   </filesmatch>

解释说明:

SetEnvIfNoCase Referer 设置匹配条件的Referer

local_ref 别名、标记

^$表示为空

Order Allow,Deny 设置出发顺序

Allow from env=local_ref 设置白名单

<filesmatch></filesmatch> 文件匹配标签

注:视频里老师讲的网址中的 . 用了\来转义,加,实验也能运行出来;但最好加上。

WEBRESOURCEb16fcc080c40fba26efa50a629dc3

## 检查并重新加载

[root@wy ~]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@wy ~]# /usr/local/apache2/bin/apachectl graceful

## 查看网页

WEBRESOURCE381ba9115abdd9b93c74edbe2c452

## 用curl -e 来测试

[root@wy ~]# curl -e "www.baidu.com" -xlocalhost:80 www.test.com/static/p_w_picpath/common/logo.png -I      

HTTP/1.1 403 Forbidden

Date: Sat, 05 Nov 2016 17:03:27 GMT

Server: Apache/2.2.16 (Unix) DAV/2 PHP/5.3.28

Content-Type: text/html; charset=iso-8859-1

## curl -e 测试,用设置的白名单

[root@wy ~]# curl -e "www.aaa.com" -xlocalhost:80 www.test.com/static/p_w_picpath/common/logo.png -I

HTTP/1.1 200 OK

Date: Sat, 05 Nov 2016 17:03:13 GMT

Server: Apache/2.2.16 (Unix) DAV/2 PHP/5.3.28

Last-Modified: Thu, 04 Sep 2014 03:22:34 GMT

ETag: "20a24-1149-50234dd113280"

Accept-Ranges: bytes

Content-Length: 4425

Cache-Control: max-age=86400

Expires: Sun, 06 Nov 2016 17:03:13 GMT

Content-Type: p_w_picpath/png