Descrição: Controla quais hosts podem acessar uma área do servidor Sintaxe: Permitir de todos|host|env=variável-env [host|env=variável-env] ...
Contexto: diretório, .htaccess
Cobertura: Limite
Estado: Base
Módulo: mod_access
A diretiva Allow afeta quais hosts podem acessar uma área do servidor. O acesso pode ser controlado usando características de solicitação do cliente capturadas em nomes de host, endereços IP, intervalos de endereços IP ou outras variáveis de ambiente.
O primeiro parâmetro desta diretiva é sempre from. Os parâmetros subsequentes podem assumir três formas diferentes. Se Allow from all for especificado, todos os hosts terão acesso permitido, exigindo que as diretivas Deny e Order sejam configuradas conforme discutido abaixo. Para permitir que apenas um subconjunto específico de hosts ou grupos de hosts acesse o servidor, o host pode ser especificado em qualquer um dos seguintes formatos:
Um nome de domínio (parte)
Exemplo: Permitir do apache.org
Permitir acesso a hosts cujos nomes correspondam ou terminem com a string fornecida. Apenas os componentes de nome completo são correspondidos, portanto, o exemplo acima corresponderá a foo.apache.org, mas não a fooapache.org. Essa configuração fará com que o servidor execute uma operação de pesquisa reversa de nome de domínio no endereço IP do cliente, independentemente de a diretiva HostnameLookups definir o endereço IP completo. Exemplo: Permitir de 10.1.2.3.
Permitir acesso de um endereço IP de um host.
Alguns exemplos de endereços IP: Permitir a partir de 10.1
Os primeiros 1 a 3 bytes do endereço IP são usados para restrições de sub-rede.
Exemplo de par rede/máscara: Permitir de 10.1.0.0/255.255.0.0
uma rede abcd e uma máscara wxyz. Para restrições de sub-rede mais precisas.
Rede/nnn Sem exemplo de especificação de roteamento intra-área: Permitir de 10.1.0.0/16
Semelhante ao caso anterior, exceto que a máscara consiste em nnn bytes de ordem superior.
Observe que os três últimos exemplos acima correspondem exatamente ao mesmo conjunto de hosts.
Endereços IPv6 e sub-redes IPv6 podem ser especificados assim:
Permitir de fe80::a00:20ff:fea7:ccea
Permitir de fe80::a00:20ff:fea7:ccea/10
O terceiro formato de parâmetro da diretiva Allow permite acesso ao servidor especificado por uma extensão da variável de ambiente. Quando Allow from env=env-variable for especificado, a solicitação de acesso será permitida se a variável de ambiente env-variable existir. Usando as diretivas fornecidas pelo mod_setenvif, o servidor oferece a capacidade de definir variáveis de ambiente de maneira flexível com base nas solicitações do cliente. Portanto, esta diretiva pode ser usada para permitir acesso baseado em campos como User-Agent (tipo de navegador), Referer ou outros campos de cabeçalho de solicitação HTTP.
exemplo:
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
<Diretório /docroot>
Pedido Negar, Permitir
Negar de todos
Permitir de env=let_me_in
</Diretório>
Neste caso, os navegadores que enviarem identificadores de agente de usuário começando com KnockKnock/2.0 terão acesso permitido, enquanto todos os outros navegadores serão bloqueados.
Descrição da instrução Deny: Controle quais hosts estão proibidos de acessar o servidor Sintaxe: Deny from all|host|env=env-variable [host|env=env-variable] ...
Contexto: diretório, .htaccess
Cobertura: Limite
Estado: Base
Módulo: mod_access
Esta diretiva permite restringir o acesso ao servidor com base no nome do host, endereço IP ou variáveis de ambiente. As configurações dos parâmetros do comando Negar são exatamente as mesmas do comando Permitir.
Descrição da instrução do pedido: controla o status de acesso padrão e a ordem na qual as instruções Permitir e Negar são avaliadas.
Sintaxe: Ordenação de ordem
Valor padrão: Negar pedido, Permitir
Contexto: diretório, .htaccess
Cobertura: Limite
Estado: Base
Módulo: mod_access
A diretiva Order controla o status de acesso padrão e a ordem na qual as diretivas Allow e Deny são avaliadas. O pedido é um dos seguintes exemplos:
Negar, permitir
As instruções de negação são avaliadas antes das instruções de permissão. Todo o acesso é permitido por padrão. Qualquer cliente que não corresponda à diretiva Deny ou que corresponda à diretiva Allow terá permissão para acessar o servidor.
Permitir, negar
A diretiva Allow é avaliada antes da diretiva Deny. Todo o acesso é proibido por padrão. Qualquer cliente que não corresponda à diretiva Allow ou à diretiva Deny será proibido de acessar o servidor.
Falha mútua
Somente hosts que aparecem na lista Permitir e não na lista Negar têm permissão de acesso. Esta ordem tem o mesmo efeito que Ordem Permitir, Negar e está obsoleta. Qual configuração ela inclui?
As palavras-chave só podem ser separadas por vírgulas; não pode haver espaços entre elas. Observe que cada instrução da diretiva Allow e Deny será avaliada em todos os casos.
No exemplo abaixo, o acesso é permitido a todos os hosts do domínio apache.org, enquanto o acesso a qualquer outro host é negado.
Pedido Negar, Permitir
Negar de todos
Permitir do apache.org
No exemplo a seguir, o acesso é permitido a todos os hosts no domínio apache.org, exceto aos hosts contidos no subdomínio foo.apache.org, aos quais o acesso é negado. Todos os hosts que não estão no domínio apache.org não têm permissão de acesso, porque o estado padrão é negar acesso ao servidor.
Ordem Permitir, Negar
Permitir do apache.org
Negar de foo.apache.org
Por outro lado, se a diretiva Order no exemplo anterior for alterada para Deny,Allow, o acesso de todos os hosts será permitido. Isso ocorre porque, independentemente da ordem real das diretivas no arquivo de configuração, a diretiva Allow from apache.org será avaliada por último e substituirá a anterior Deny from foo.apache.org. Todos os hosts que não estão no domínio apache.org também têm acesso permitido porque o status padrão foi alterado para permitir.
Mesmo que não seja acompanhada de instruções de Permitir e Negar, a existência de uma instrução de Pedido afetará o acesso a uma determinada parte do servidor. Isso se deve ao seu impacto no estado de acesso padrão. Por exemplo,
<Diretório /www>
Ordem Permitir, Negar
</Diretório>
Isso desativará todo o acesso ao diretório /www, pois o status padrão será definido como negado.
A diretiva Order controla o processamento de instruções de acesso apenas dentro de cada segmento da configuração do servidor. Isso significa que, por exemplo, uma diretiva Allow ou Deny que aparece em uma seção <Location> sempre será avaliada após uma diretiva Allow ou Deny aparecer em uma seção <Directory> ou arquivo .htaccess, independentemente da configuração na diretiva Order. Por que. Para obter detalhes sobre a mesclagem de seções de configuração, consulte Como funcionam as seções Diretório, Local e Arquivos.