43.配置防盜鏈 訪問控制Directory及FilesMatch

11.25 配置防盜鏈php

11.26 訪問控制Directory(針對一個目錄作限制)html

11.27 訪問控制FilesMatch(針對一個文件或連接作限制)linux

擴展apache

幾種限制ip的方法 http://ask.apelearn.com/question/6519vim

apache 自定義header http://ask.apelearn.com/question/830瀏覽器

apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556服務器

 

 

 

11.25 配置防盜鏈curl

 

設置防盜鏈,不是我認識的就不容許你訪問。好比,A的圖片上傳到B,在B裏面去引用,形成B的帶寬升高,這是不容許的。只能在A域名裏去訪問,這樣圖片就能控制在咱們本身的服務器上,第三方的站點沒有辦法去引用,這個就叫防盜鏈測試

 

經過限制referer來實現防盜鏈的功能url

Apache的虛擬配置文件,配置文件增長以下內容

<Directory /data/wwwroot/111.com> 用到了Directory。定義哪一個目錄,也就是本站點

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

SetEnvIfNoCase Referer "http://aaa.com" local_ref

SetEnvIfNoCase Referer "^$" local_ref 空的referer也設爲白名單。

註釋掉的話,直接訪問網址不顯示(Forbidden),也就是沒有索引頁不能直接訪問

<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> FM不嚴格區分大小寫,均可以。定義規則,針對這樣的去作白名單,也就是作防盜鏈

Order Allow,Deny 順序,先容許仍是先拒絕

Allow from env=local_ref 把上面的兩個把名單作一個容許,其餘的deny掉

</FilesMatch>

</Directory>

-t gaceful

curl -e "http://www.aminglinux.com/123.html" 自定義referer

 

 

 

實例:

[root@axinlinux-01 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com>

SetEnvIfNoCase Referer "http://111.com" local_ref

SetEnvIfNoCase Referer "http://aaa.com" local_ref

SetEnvIfNoCase Referer "^$" local_ref

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">

Order Allow,Deny

Allow from env=local_ref

</filesmatch>

</Directory>

[root@axinlinux-01 ~]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@axinlinux-01 ~]# /usr/local/apache2/bin/apachectl graceful

httpd not running, trying to start

瀏覽器上測試 111.com/abc.jpg 爲Forbidden(即空referer) 也就是咱們須要把連接的那個站址放到referer的白名單裏去或設置空referer可訪問

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.26 訪問控制Directory(針對一個目錄作限制):

 

 

只容許這個使用這個ip的用戶才能訪問(爲一個目錄)

 

核心配置文件內容

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

Order deny,allow Order指定順序,是先deny仍是allow,和下面兩行是對應的

Deny from all

Allow from 127.0.0.1

</Directory>

curl測試狀態碼爲403則被限制訪問了

-t grace

也就是作了這個操做,只有在這個ip127.0.0.1的ip上訪問,才能夠200

 

 

 

實例:

[root@axinlinux-01 admin]# vi 123.php

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

Order deny,allow

Deny from all

Allow from 127.0.0.1

</Directory>

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl graceful

[root@axinlinux-01 admin]# curl -x192.168.159.128:80 111.com/admin/123.php -I

HTTP/1.1 403 Forbidden

[root@axinlinux-01 admin]# curl -x127.0.0.1:80 111.com/admin/123.php -I

HTTP/1.1 200 OK

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.27 訪問控制FilesMatch(針對一個文件或連接作限制):

 

核心配置文件內容

<Directory /data/wwwroot/111.com>

<FilesMatch "admin.php(.*)"> 以上面的directory的基礎上。在下面加一行。意思爲admin.php......(什麼什麼的)

Order deny,allow

Deny from all

Allow from 127.0.0.1

</FilesMatch> 接上面的FilesMatch,都是成對出現的

</Directory>

 

實例:

[root@axinlinux-01 admin]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<FilesMatch "admin.php(.*)">

Order deny,allow

Deny from all

Allow from 127.0.0.1

</FilesMatch>

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl graceful

[root@axinlinux-01 admin]# curl -x127.0.0.1:80 'http://111.com/admin/admin.phpaew?' -I 有特殊符號要用單引號

HTTP/1.1 404 Not Found 404表明頁面不存在,實際上是已經訪問了,只是咱們沒有建立這個admin.phpaew?

Date: Mon, 06 Aug 2018 15:26:41 GMT

Server: Apache/2.4.34 (Unix) PHP/5.6.32

Content-Type: text/html; charset=iso-8859-1

 

[root@axinlinux-01 admin]# curl -x192.168.159.128:80 'http://111.com/admin/admin.phpaew?' -I

HTTP/1.1 403 Forbidden

Date: Mon, 06 Aug 2018 15:26:57 GMT

Server: Apache/2.4.34 (Unix) PHP/5.6.32

Content-Type: text/html; charset=iso-8859-1

相關文章
相關標籤/搜索