1. 程式人生 > >2018.3.6 11周1次課

2018.3.6 11周1次課

Linux學習

十一周一次課(3月6日)

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次課