配置防盜鏈

配置防盜鏈

要實現防盜鏈,咱們就必須先理解盜鏈的實現原理,提到防盜鏈的實現原理就不得不從HTTP協議提及,在HTTP協議中,有一個表頭字段叫referer,採用URL的格式來表示從哪兒連接到當前的網頁或文件。換句話說,經過referer,網站能夠檢測目標網頁訪問的來源網頁,若是是資源文件,則能夠跟蹤到顯示它的網頁地址。有了referer跟蹤來源就好辦了,這時就能夠經過技術手段來進行處理,一旦檢測到來源不是本站即進行阻止或者返回指定的頁面。html

(1)配置防盜鏈apache

[root@chy ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf (增長以下配置)
 <Directory /data/wwwroot/111.com>
        SetEnvIfNoCase Referer "http://www.111.com" local_ref
        SetEnvIfNoCase Referer "http://123.com" local_ref
        SetEnvIfNoCase Referer "^$" local_ref
        <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">
            Order Allow,Deny
            Allow from env=local_ref
        </filesmatch>
    </Directory>
配置詳解:<Directory /data/wwwroot/111.com> (定義網站的目錄)
        SetEnvIfNoCase Referer "http://www.111.com" local_ref (定義referer的白名單)
        SetEnvIfNoCase Referer "http://123.com" local_ref(定義refererd的白名單)
        SetEnvIfNoCase Referer "^$" local_ref(定義空的referer爲白名單)
        <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">(定義規則,針對這樣的訪問作一個白名單)
            Order Allow,Deny
            Allow from env=local_ref
        </filesmatch>(這裏的含義爲將白名單referer容許,其它的規則deny)
    </Directory>
    [root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(加載配置)
[root@chy ~]# curl -x127.0.0.1:80 www.111.com/lf.png -I
HTTP/1.1 403 Forbidden
Date: Thu, 03 Aug 2017 00:56:11 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1
(測試作防盜鏈的結果)
[root@chy 111.com]# curl -x127.0.0.1:80 www.111.com/lf.png -I
HTTP/1.1 200 OK
Date: Thu, 03 Aug 2017 00:00:31 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
Last-Modified: Wed, 19 Oct 2016 08:52:35 GMT
ETag: "1bca7-53f33ee277ac0"
Accept-Ranges: bytes
Content-Length: 113831
Cache-Control: max-age=86400
Expires: Fri, 04 Aug 2017 00:00:31 GMT
Content-Type: image/png
(這個是以前測試沒有作防盜鏈的結果)
相關文章
相關標籤/搜索