2018.3.6 11周1次課
11.25 配置防盜鏈 11.26 訪問控制Directory 11.27 訪問控制FilesMatch
11.25 配置防盜鏈
通過限制referer來實現防盜鏈的功
防盜鏈,通俗講,就是不讓別人盜用你網站上的資源。這個資源,通常指的是圖片、視頻、歌曲、文檔等。referer是指:你通過A網站的一個頁面http://a.com/a.html裏面的鏈接去訪問B網站的的一個頁面http://b.com/b.html,那麽這個B網站頁面的referer就是http://a.com/a.html。也就是說,一個referer其實就是一個網址,即前一個被訪問頁面的 URL,是來源網址
編輯虛擬機主機配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com> //定義防盜鏈目錄:本站點
SetEnvIfNoCase Referer "http://111.com" local_ref //定義Referer白名單:111.com
SetEnvIfNoCase Referer "http://aaa.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref //"^$"表示空,當直接在瀏覽器裏輸入圖片地址去訪問它時,它的referer就為空。定義空也是白名單
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> //定義需要保護的文件類型,當訪問這些類型的文件時就會被限制。
Order Allow,Deny //定義訪問控制的順序,先允許後拒絕
Allow from env=local_ref //允許白名單的referer,其它deny
</filesmatch>
</Directory>
測試:用curl命令
-e/--referer <URL> 為 HTTP 數據包指定 Referer Page 信息,即前一個被訪問頁面的 URL。通常這個信息被服務器用於判斷自己是否被盜鏈,如果發現服務器端有這樣的檢測機制,則可以使用該參數繞過檢測。
使用-e來定義referer,這個referer一定要以http://開頭,否則不管用
-I/--head 只接收 response數據包中 header 字段的內容。即只顯示 HTTP 頭,而不顯示文件內容
不在白名單裏網址:使用非允許的referer會返回403的狀態碼
在白名單裏網址:
查看日誌:tail /usr/local/apache2.4/logs/111.com-access_20180306.log
11.26 訪問控制Directory
対於一些比校重要的網站內容,除了可以使用用戶認證限制訪同之外,込可以通其他一些方法做到限制,比如可以限制IP ,也可以限制user_agent。限制IP指的是限制訪問網站的來源IP ,而限制 user-agent ,通常用來限制惡意或者不正常的請求。
<Directory /data/wwwroot/111.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
使用くDirectory>來指定要限制訪問的目錄。order定義控制順序,哪個在前面就先匹配哪個規則。在本例中deny在前面,所以先匹配Deny from all ,這樣所有的來源IP都會被限制,然後匹配Allow from 127.0.0.1 ,這祥又允許了127.0.0.1這個IP。最終的效果是,只允許來源IPカ127.0.0.1的訪問。
測試環境:
用curl命令:我們限制的是源IP,而-x後面是目標IP
訪問日誌
本機有兩個IP,一個是192.168.37.101,一個是127.0.0.1,通過這兩個IP都可以訪問到站點。 而來源IP分別為192.168.37.101和127.0.0.1, 其實和本機IP是一樣的。
瀏覽器訪問提示Forbidden, 其實就是403。再來看日誌,可以查看到對應的來源IP,192.168.37.1,希望你不要把來源IP和本機IP搞混了。前面的實驗中之所以本機IP和來源一樣,就是因為它相當於自己訪問 自己。而後面用瀏覽器訪問,相當於拿Windows機器訪問Linux服務器
curl測試狀態碼為403則被限制訪問了
11.27 訪問控制FilesMatch
可以單獨針對某個文件來做限制
核心配置文件內容
<Directory /data/wwwroot/111.com>
<FilesMatch "admin.php(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>
狀態碼:404 //沒有對admin做限制,所以允許訪問,但找不到網頁
狀態碼:403 //無法訪問,因為做了限制
上圖因為有特殊符號?,所有http://111.com/admin.php?要加上單引號
狀態碼:404 //127.0.0.1是允許的訪問
2018.3.6 11周1次課