防止有人利用網站文件上傳的功能,把一些靜態媒體資源放到咱們的網站上,而後在他們的網站上設置這些資源的連接到咱們的網站上,當他們網站用戶訪問這些資源時,就會跳轉到咱們的服務器上,致使咱們的服務器帶寬流量異常增大。爲了防止這種狀況發生,咱們利用apache服務器訪問控制實現防盜鏈功能。php
在httpd-vhosts.conf配置文件下進行設定:apache
<Directory /data/wwwroot/111.com> SetEnvIfNoCase Referer "http://www.111.com" local_ref //指定referer白名單 SetEnvIfNoCase Referer "http://111.com" local_ref //指定referer白名單 SetEnvIfNoCase Referer "^$" local_ref //空的referer也能訪問 <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> //使用文件匹配訪問控制 Order Allow,Deny //訪問控制順序,先容許後拒絕。 Allow from env=local_ref //只有符合白名單上的referer才能訪問111.com目錄。 </FilesMatch> </Directory>
驗證效果。服務器
curl -e 「www.111.com」 -x127.0.0.1:80 www.111.com/logo.jpg -I //-e選項是指定referer進行訪問。
公司的內部網站能夠設置訪問控制,指定來源IP纔可以訪問curl
在httpd-vhosts.conf配置文件下進行設定:網站
<Directory /data/wwwroot/111.com> // 指定須要訪問控制的網站的目錄 Order deny,allow //訪問控制的順序,先全部都拒絕,而後再容許指定的ip。和iptables不一樣,能夠所有規則都執行下去。 Deny from all // 拒絕全部的來源ip Allow from 127.0.0.1 //指定容許訪問的來源ip(指定網段也能夠192.168.0.0/24) </Directory>
除了對整個網站的目錄進行訪問控制外,還能夠對網站的指定某一個頁面進行訪問控制,例如只有指定的來源ip纔可以訪問後臺管理的頁面。url
也是在httpd-vhosts.conf配置文件下進行設定:code
<FilesMatch "admin.php(.*)"> //指定須要訪問控制的頁面 Order deny,allow //訪問控制的順序,先全部都拒絕,而後再容許指定的ip Deny from all // 拒絕全部的來源ip Allow from 127.0.0.1 //指定容許訪問的來源ip(指定網段也能夠192.168.0.0/24) </FilesMatch>