1. 程式人生 > >LAMP(6)靜態元素過期時間、配置防盜鏈、訪問控制Directory、訪問控制FilesMatch

LAMP(6)靜態元素過期時間、配置防盜鏈、訪問控制Directory、訪問控制FilesMatch

訪問控制

靜態元素過期時間

靜態元素:(圖片、js、css)

平時我們在瀏覽器訪問網站的時候,如果裏面有這些靜態元素,瀏覽器會幫我們把它們緩存下來,再次訪問的時候訪問的速度就會快。

緩存下來的靜態元素到底緩存多久?這個是可以在服務器配置文件中定義的。(定義靜態元素過期時間)

304 狀態碼表示該文件已經緩存到用戶電腦。

技術分享圖片

定義靜態元素的失效日期:

步驟:(針對111.com這臺虛擬主機操作)

1.編輯配置文件,添加配置內容;


增加配置

<IfModule mod_expires.c> //expires模塊m

ExpiresActive on //打開該功能的開關

ExpiresByType image/gif "access plus 1 days"

ExpiresByType image/jpeg "access plus 24 hours"

ExpiresByType image/png "access plus 24 hours"

ExpiresByType text/css "now plus 2 hour"

ExpiresByType application/x-javascript "now plus 2 hours"

ExpiresByType application/javascript "now plus 2 hours"

ExpiresByType application/x-shockwave-flash "now plus 2 hours"

ExpiresDefault "now plus 0 min"

</IfModule>



技術分享圖片


改完了配置文件需要重新加載一下:

/usr/local/apache2.4/bin/apachectl -t (檢測)

/usr/local/apache2.4/bin/apachectl graceful (加載)


2.檢查一下expaire模塊是否有打開:

/usr/local/apache2.4/bin/apachectl -M |grep expires

(若無則在httpd配置文件中打開)

vim /usr/local/apache2.4/conf/httpd.conf (搜索expires )

技術分享圖片

修改後技術分享圖片



測試:curl -x192.168.136.133:80 111.com/qq.jpg -I


技術分享圖片

如果我們把expaire模塊關了-->測試

技術分享圖片

技術分享圖片




配置防盜鏈

技術分享圖片

referer的概念:如我們在A網站的一個頁面http://a.com.a.html的鏈接去訪問到B網站的一個頁面http://b.com/b.html,那麽B網站的頁面的referer就是http://a.com.a.html。referer其實就是一個網址。


定義防盜鏈步驟:(對111.com虛擬主機操作)

1.編輯虛擬主機配置文件,增添內容:


配置文件增加如下內容

<Directory /data/wwwroot/111.com> //定義目錄

SetEnvIfNoCase Referer "http://111.com" local_ref //定義白名單

SetEnvIfNoCase Referer "http://www.example.com" local_ref //定義白名單

SetEnvIfNoCase Referer "^$" local_ref //定義白名單,^$為空的referer,當我們直接在瀏覽器中輸入訪問內容(圖片)的地址時,referer為空。

<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> //針對這些訪問設置防盜鏈。

Order Allow,Deny

Allow from env=local_ref //這兩行的意思是把我們上面定義的referer做允許,其他deny

</FilesMatch>

</Directory>

技術分享圖片


改完了配置文件需要重新加載一下:

/usr/local/apache2.4/bin/apachectl -t (檢測)

/usr/local/apache2.4/bin/apachectl graceful (加載)



測試:

1.瀏覽器:

技術分享圖片

(SetEnvIfNoCase Referer "^$" local_ref //定義白名單,^$為空的referer,當我們直接在瀏覽器中輸入訪問內容(圖片)的地址時,referer為空。)在瀏覽器測試時是這條內容註釋了測試的。


使用curl -e 指定refererc測試


curl -e "http://www.baidu.com/123.txt" -x192.168.136.133:80 111.com/qq.jpg -I


技術分享圖片

使用有白名單的referer

技術分享圖片





訪問控制Directory

限制ip訪問,只有白名單(允許名單ip)才能就行訪問

技術分享圖片

步驟:

修改虛擬主機配置:

核心配置文件內容

<Directory /data/wwwroot/111.com/login/>

Order deny,allow //order定義下面先執行deny還是allow

Deny from all

Allow from 192.168.136.133

</Directory>

技術分享圖片

(這裏限制的是源ip)

改完了配置文件需要重新加載一下:

/usr/local/apache2.4/bin/apachectl -t (檢測)

/usr/local/apache2.4/bin/apachectl graceful (加載)

技術分享圖片

(此時我們已經創建了login目錄和目錄裏的index.php文件)


測試:

(curl -x+ip,這裏的ip就是我們的目標ip)


技術分享圖片

技術分享圖片

(只要我們的源ip不是我們定義有允許的ip就不能訪問)


技術分享圖片


技術分享圖片

最左邊的就是來源ip



訪問控制FilesMatch

針對一個鏈接文件做訪問限制,而上面是對一個目錄做了訪問限制。

技術分享圖片

修改配置文件,添加內容:

技術分享圖片


改完了配置文件需要重新加載一下:

/usr/local/apache2.4/bin/apachectl -t (檢測)

/usr/local/apache2.4/bin/apachectl graceful (加載)




測試:


技術分享圖片







































LAMP(6)靜態元素過期時間、配置防盜鏈、訪問控制Directory、訪問控制FilesMatch