欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國 | 本篇譯稿最后更新:2006年1月24日 | 獲取最新版本

Apache模塊 mod_authz_host

說明提供基于主機名、IP地址、請求特征的訪問控制
狀態(tài)基本(B)
模塊名authz_host_module
源文件mod_authz_host.c
兼容性僅在 Apache 2.1 及以后的版本中可用

概述

mod_authz_host提供的指令用在<Directory>, <Files>, <Location>段中,也用于.htaccess文件中控制對服務(wù)器特定部分的訪問。只要能在環(huán)境變量中捕獲到主機名、IP地址或其他的客戶端請求特征,就可以基于這些特征對訪問進行控制。AllowDeny指令用于指出允許哪些客戶及不允許哪些客戶訪問服務(wù)器,而Order指令設(shè)置默認的訪問狀態(tài)并配置AllowDeny指令怎樣相互作用。

基于主機的訪問控制和基于口令的身份驗證兩套機制可以同時實現(xiàn)。在這種情況下,Satisfy指令用來決定兩套機制如何相互作用。

一般來說,訪問控制指令適用于所有的訪問方法(GET, PUT, POST等)。在多數(shù)情況下這是一個被期望的特性。但是,只限制某些方法而對其他方法不加限制也是可能的:通過把指令放到一個<Limit>段中即可。

top

Allow 指令

說明控制哪些主機能夠訪問服務(wù)器的該區(qū)域
語法 Allow from all|host|env=env-variable [host|env=env-variable] ...
作用域directory, .htaccess
覆蓋項Limit
狀態(tài)基本(B)
模塊mod_authz_host

Allow指令控制哪些主機可以訪問服務(wù)器的該區(qū)域?梢愿鶕(jù)主機名、IP地址、 IP地址范圍或其他環(huán)境變量中捕獲的客戶端請求特性進行控制。

這個指令的第一個參數(shù)總是"from",隨后的參數(shù)可以有三種不同形式:如果指定"Allow from all",則允許所有主機訪問,按照下述DenyOrder指令的配置。若要只允許特定的主機或主機群訪問服務(wù)器,host可以用下面任何一種格式來指定:

一個(部分)域名

示例:

Allow from apache.org
Allow from .net example.edu

主機名與給定字符串匹配或者以給定字符串結(jié)尾的主機允許訪問。只有完整的名字組成部分才被匹配,因此上述例子將匹配foo.apache.org但不能匹配fooapache.org 。這樣的配置將導(dǎo)致Apache不管HostnameLookups指令是如何設(shè)置的,對一個對客戶IP地址都要執(zhí)行兩次DNS查詢:一次正查詢保證IP沒有偽造,一次反查詢保證主機名沒有偽造。只有兩次查詢的結(jié)果都吻合,并且主機名能夠被匹配,訪問才被允許。

完整的IP地址

示例:

Allow from 10.1.2.3
Allow from 192.168.1.104 192.168.1.205

允許擁有這些IP地址的主機進行訪問。

部分IP地址

示例:

Allow from 10.1
Allow from 10 172.20 192.168.2

IP地址的開始1到3個字節(jié),用于子網(wǎng)限制。

網(wǎng)絡(luò)/掩碼對

示例:

Allow from 10.1.0.0/255.255.0.0

一個網(wǎng)絡(luò)"a.b.c.d"和一個掩碼"w.x.y.z",用于更精確的子網(wǎng)限制。

網(wǎng)絡(luò)/nnn無類別域間路由規(guī)格(CIDR specification)

示例:

Allow from 10.1.0.0/16

同前一種情況相似,除了掩碼由nnn個高位字節(jié)構(gòu)成。

注意以上例子中的后三個匹配完全相同的一組主機。

IPv6地址和IPv6子網(wǎng)可以像下面這樣指定:

Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10

Allow指令的第三種參數(shù)格式允許對服務(wù)器的訪問由環(huán)境變量的一個擴展指定。指定"Allow from env=env-variable"時,如果環(huán)境變量env-variable存在則訪問被允許。使用由mod_setenvif提供的指令,服務(wù)器用一種基于客戶端請求的彈性方式提供了設(shè)置環(huán)境變量的能力。因此,這條指令可以用于允許基于像User-Agent(瀏覽器類型)、Referer或其他HTTP請求頭字段的訪問。

示例:

SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from env=let_me_in
</Directory>

這種情況下,發(fā)送以KnockKnock/2.0開頭的用戶代理標(biāo)示的瀏覽器將被允許訪問,而所有其他瀏覽器將被禁止訪問。

top

Deny 指令

說明控制哪些主機被禁止訪問服務(wù)器
語法 Deny from all|host|env=env-variable [host|env=env-variable] ...
作用域directory, .htaccess
覆蓋項Limit
狀態(tài)基本(B)
模塊mod_authz_host

這條指令允許基于主機名、IP地址或者環(huán)境變量限制對服務(wù)器的訪問。Deny指令的參數(shù)設(shè)置和Allow指令完全相同。

top

Order 指令

說明控制默認的訪問狀態(tài)與AllowDeny指令生效的順序
語法 Order ordering
默認值Order Deny,Allow
作用域directory, .htaccess
覆蓋項Limit
狀態(tài)基本(B)
模塊mod_authz_host

Order指令控制默認的訪問狀態(tài)與AllowDeny指令生效的順序。Ordering取值范圍是以下幾種范例之一:

Deny,Allow
Deny指令在Allow指令之前被評估。默認允許所有訪問。任何不匹配Deny指令或者匹配Allow指令的客戶都被允許訪問。
Allow,Deny
Allow指令在Deny指令之前被評估。默認拒絕所有訪問。任何不匹配Allow指令或者匹配Deny指令的客戶都將被禁止訪問。
Mutual-failure
只有出現(xiàn)在Allow列表并且不出現(xiàn)在Deny列表中的主機才被允許訪問。這種順序與"Order Allow,Deny"具有同樣效果,不贊成使用。

關(guān)鍵字只能用逗號分隔;它們之間不能有空格。注意在所有情況下每個AllowDeny指令語句都將被評估。

在下面的例子中,apache.org域中所有主機都允許訪問,而其他任何主機的訪問都將被拒絕。

Order Deny,Allow
Deny from all
Allow from apache.org

下面例子中,apache.org域中所有主機,除了foo.apache.org子域包含的主機被拒絕以外,其他都允許訪問。而所有不在apache.org域中的主機都不允許訪問,因為默認狀態(tài)是拒絕對服務(wù)器的訪問。

Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

另一方面,如果上個例子中的Order指令改變?yōu)?Deny,Allow",將允許所有主機的訪問。這是因為,不管配置文件中指令的實際順序如何,"Allow from apache.org"指令會最后被評估到并覆蓋之前的"Deny from foo.apache.org"。所有不在apache.org域中的主機也允許訪問是因為默認狀態(tài)被改變到了允許。

即使沒有伴隨AllowDeny指令,一個Order指令的存在也會影響到服務(wù)器上某一個部分的訪問,這是由于它對默認訪問狀態(tài)的影響。例如:

<Directory /www>
Order Allow,Deny
</Directory>

這樣將會禁止所有對/www目錄的訪問,因為默認狀態(tài)將被設(shè)置為拒絕

Order指令只在服務(wù)器配置的每個段內(nèi)部控制訪問指令的處理。這暗示著,例如,一個在<Location>段中出現(xiàn)的AllowDeny指令總是將會在一個<Directory>段或者.htaccess文件中出現(xiàn)的AllowDeny指令之后被評估,而不管Order指令如何設(shè)置。要了解配置段落合并的詳細信息,參見配置段文檔。