11.25 配置防盜鏈
防盜鏈,就是不讓別人用你網站上的資源。
而這個資源,通常是圖片,視頻,歌曲,文檔等。
referer的概念,通過A網站的一個頁面a.com/a.html裏面的鏈接去訪問B網站的一個頁面b.com/b.html,那麽這個B網站的referer就是a.com/a.html。也就是說,一個referer就是一個網址。
通過限制referer來實現防盜鏈的功能
配置文件增加如下內容
<Directory /data/wwwroot/www.123.com>
SetEnvIfNoCase Referer "http://www.123.com" local_ref
SetEnvIfNoCase Referer "http://123.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</Directory>
Order Allow,Deny
解析,
限制動作的順序 。白名單的先允許,其他的將會被Deny
Allow From env=local_ref
允許的源
檢查並重新加載
apachectl -t, apachectl graceful
打開網頁測試,測試白名單111.com/1.gif
其中1.gif是屬於白名單的其中針對文件類型
截圖
加了防盜鏈之後,會提示沒有被允許訪問。
如果我們直接在防盜鏈配置上面加入第三方鏈接的referer,我們也能直接訪問。
例如,在阿銘論壇上訪問111.com/1.gif,使其開通白名單即可。以下配置
原理就是,111.com/1.gif的referer是阿銘論壇(ask.apelearn.com),而阿銘論壇又被列入白名單當中。所以在阿銘論壇點開111.com/1.gif是完全不受訪問的 。
^$表示空referer,就是指開頭了就結尾了。
curl測試 curl-e後面接referer的網址
[root@AliKvn 111.com]# curl -e "http://www.qq.com/123.txt" -x127.0.0.1:80 111.com/1.gif -I
HTTP/1.1 403 Forbidden
Date: Tue, 17 Apr 2018 10:15:55 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1
狀態代碼是403,因為referer是http://www.qq.com/123.txt
[root@AliKvn 111.com]# curl -e "http://111.com/123.txt" -x127.0.0.1:80 111.com/1.gif -I
HTTP/1.1 200 OK
Date: Tue, 17 Apr 2018 10:16:58 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Last-Modified: Tue, 14 Jul 2009 05:32:31 GMT
ETag: "91554-46ea3c3d3b9c0"
Accept-Ranges: bytes
Content-Length: 595284
Content-Type: image/gif
狀態碼是200,因為referer是http://111.com/123.txt,而111.com又是白名單之一,所以是通過的。
11.25 配置防盜鏈