Apache配置文件中的deny與allow小結(jié)
今天在公司配置Zend本地Apache環(huán)境的時(shí)候,發(fā)現(xiàn)在zend.conf中的權(quán)限控制中的幾段句子,如下所示:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
自己在配置虛擬主機(jī)的時(shí)候需要配置VirtualHost,
<VirtualHost *:80>
ServerName backend
DocumentRoot "D:/Program Files/Zend/Apache2/htdocs/public"
SetEnv APPLICATION_ENV "development"
<Directory "D:/Program Files/Zend/Apache2/htdocs/public">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
兩段Order語句的不同引起了我的興趣,那么到底這里的順序是怎樣執(zhí)行的呢?先前聯(lián)想到了“短路”的概念,有相同,也有不同,下面用幾個(gè)例子來分析一下。
Order deny,allow
–(注意deny與allow之間只有一個(gè)逗號(hào),并且只能這樣書寫,其他寫法都是錯(cuò)誤的)
Allow from all
Deny from 219.204.253.8
全部都可以通過。
Order deny,allow
Deny from 219.204.253.8
Allow from all
–全部都可以通過 。
Order allow,deny
Deny from 219.204.253.8
Allow from all
只有219.204.253.8不能通過。
Order allow,deny
Allow from all
Deny from 219.204.253.8
只有219.204.253.8不能通過 。
根據(jù)Apache官網(wǎng)的 解釋,allow方向影響的是可以通過一個(gè)服務(wù)器區(qū)域的主機(jī),這個(gè)主機(jī)可以通過主機(jī)名(hostname)、IP地址、IP地址范圍或者通過其他的客戶端 請(qǐng)求條件。與之相反的正是deny,deny控制的是不被服務(wù)器所允許的主機(jī),deny的識(shí)別方式也是主機(jī)名(hostname)、IP地址及范圍、或者 環(huán)境變量等。而位于頂層的Order起到的作用就是制定規(guī)則。比如上面案例1中,我們的Order為先檢查deny后檢查allow,那么我們可以把下面 的兩句話當(dāng)做一個(gè)list,這兩句話沒有自然的先后順序,即檢查deny時(shí)候,我們發(fā)現(xiàn)219.204.253.8這臺(tái)主機(jī)是滿足拒絕條件的,那么就進(jìn)行 第二步檢測(cè),即allow的檢查,發(fā)現(xiàn)allow做的事情是:allow from all,意思即全部來源都可以獲得通過。這里的關(guān)鍵是,一切訪客進(jìn)來之后都不是一棒子打死的,都要經(jīng)過兩步驗(yàn)證,那么可以發(fā)現(xiàn)全部機(jī)器都是可以獲得通過 的,與結(jié)果一致。
案例2中,Order順序是先deny后allow,那么我們的步驟即在deny規(guī)則里面發(fā)現(xiàn)219.204.253.8是滿足deny規(guī)則的,那 么進(jìn)入第二步檢查,發(fā)現(xiàn)依然是allow all,結(jié)果同樣是全部允許。這里我們可以得到的結(jié)論是,Order語句之后的兩個(gè)from語句的自然先后順序是沒有關(guān)系的,檢查的順序完全是按照 Order事先約定好的進(jìn)行。
這樣來看案例3就比較容易了,我們的Order是先allow后deny,那么deny具有最終決定權(quán),即在allow說通過之后各個(gè)訪客還需要進(jìn)行拒絕檢查,發(fā)現(xiàn)219.204.253.8這臺(tái)主機(jī)是不滿足的,那么進(jìn)行拒絕。案例4可以用同樣的方法進(jìn)行分析。
相關(guān)文章
探討如何減少Linux服務(wù)器TIME_WAIT過多的問題
本篇文章是對(duì)如何減少Linux服務(wù)器TIME_WAIT過多的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06apache下面二級(jí)目錄部署react/vue的方法
這篇文章主要介紹了apache下面二級(jí)目錄部署react/vue的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08Linux設(shè)備之網(wǎng)絡(luò)驅(qū)動(dòng)介紹
大家好,本篇文章主要講的是Linux設(shè)備之網(wǎng)絡(luò)驅(qū)動(dòng)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12linux下如何查看java進(jìn)程內(nèi)存占用情況
這篇文章主要介紹了linux下如何查看java進(jìn)程內(nèi)存占用情況問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12