De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Thiago Estrela
Data de Publicação: 14 de Junho de 2009
O .htaccess
é um arquivo de configuração distribuído (já que pode
ser usado em vários diretórios), sendo seu uso relacionado a webservers em
geral, principalmente o Apache. Um arquivo, contendo uma ou mais diretivas de
configuração, quando colocado dentro de um diretório, aplica essas diretivas a
ele e a todos sub-diretórios, tendo essa nova configuração prioridade sobre
a estabelecida para este diretório no httpd.conf.
Lembrando que você pode também mudar o nome do .htaccess
para .config,
por exemplo, através da diretiva AccessFileName
do Apache (necessário
permissão para isso).
Entre as várias utilidades desse arquivo de configuração (.htaccess
),
vamos destacar algumas abaixo, com relação a segurança de páginas ou sites
na internet:
Digamos que você tenha criado um Administrador para seu site e este
administrador esteja no endereço www.seudominio.com.br/admin
e, além disso,
precise proteger seu Administrador de modo fácil, seguro e rápido. Isso
poderia ser feito da seguinte maneira:
AuthType Basic AuthName "TITULO DA JANELA" AuthUserFile "/home/usuario/.htpasswds/public_html/admin/passwd" require valid-user
Na configuração acima, é estabelecido um tipo de autenticação no qual aparece
uma janela solicitando usuário e senha para acessar determinada área (para
trancar ou proteger a pasta admin , basta colocar o arquivo .htaccess
com
as configurações acima na respectiva pasta). Na linha 2, pode-se colocar um
nome ou título para a janela que irá aparecer para o usuário. Na linha 3, está
o endereço do arquivo que contém os usuários e senhas dos quais têm acesso
permitido à área. Esse arquivo (passwd) não pode ser acessado externamente
(quando configurado corretamente) e o seu conteúdo é usuario:6YNFCJWSDGpA2
. Repare que a senha (que vem depois dos dois pontos e é usuario ) está
encriptada para maior segurança.
Outra utilidade bastante interessante do .htaccess
é quando se tem uma Intranet rodando em um servidor web (que não seja interno a rede da empresa) e precisa-se permitir o acesso de determinados IPs (ou faixas de IPs) a essa Intranet. Pode-se, então, usar o seguinte código em um arquivo .htaccess
e colocá-lo no diretório onde está sua Intranet:
< Files pagina_erro_403.php> Order Deny,Allow Deny from all Allow from 192.168. </Files>
O código acima faz com que apenas os IPs da rede local, ou seja, os IPs do tipo 192.168.x.x , onde x representa um número de 0 a 255, seja permitido. Dessa forma, todos os outros IPs serão negados e nenhum IP fora da rede será aceito onde possuir o arquivo .htaccess
. Na primeira linha, é definida uma página que será exibida àqueles que não possuem permissão para acessar a área (nesse caso a página de erro 403, ou acesso negado, será exibida).
As páginas de erros que são exibidas, como quando não se acha um arquivo ou página no servidor e exibe uma página de Não Encontrado , podem ser personalizadas através do .htaccess
. Essas páginas são importantes e deve-se dar uma atenção especial a elas, já que uma tentativa de ataque ou uma intenção maliciosa podem ser descobertas através de uma monitoração constante de logs ou avisos, gerados com o auxílio de linguagens dinâmicas (PHP, Python, etc). O código abaixo mostra como se pode personalizar ou alterar essas páginas de acordo com suas necessidades ou interesses.
ErrorDocument 403 /acesso_negado.php ErrorDocument 404 /nao_encontrado.php ErrorDocument 500 /erro_interno_servidor.php
No código acima, foram personalizados os erros mais comuns (note que aos erros são associados números), e existem vários erros, como os erros de número 400, 401, 402 que são associados aos erros de cliente , e os erros acima de 500 que são associados aos erros de servidor . Na primeira linha, é definida uma página para quando o usuário não tem permissão de acesso. Na segunda, quando um usuário tenta acessar um arquivo ou diretório inexistente no servidor, será exibida a página não_encontrado.php . E, por último, será exibido a página erro_interno_servidor.php quando acontecer um erro interno no servidor. Com esse recurso, você pode criar uma página PHP (por exemplo) que envia um e-mail e/ou armazena em algum banco de dados as informações do usuário que acessou tal página e, caso perceba algo suspeito, tomará providências de modo a corrigir uma suposta falha ou problema de segurança.
O mod_rewrite é um módulo do Apache que permite reescrever regras para tornar as URL s Amigáveis. Assim, pode-se atrair mais visitantes ao seu site (os endereços do seu site irão se tornar mais relevantes nos motores de busca) e ainda tornar seus sites mais seguros. Abaixo, iremos mostrar como:
RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?pagina=$1
A primeira linha é a responsável por ativar a regra que altera as URL
s (endereços dos sites). A segunda e a terceira fazem com que essa regra
não seja aplicada a outros arquivos e diretórios respectivamente. Na última
linha, é exibida a regra de reescrita onde qualquer string (.*) após a pasta,
onde estiver o .htaccess
, será interpretado por index.php passado
na variável pagina ; ou melhor, quando se digitar um endereço do tipo
www.seusite.com.br/secao/subsecao/
, o Apache entenderá que você digitou
www.seusite.com.br/index.php?pagina=secao/subsecao/
. Dessa maneira,
você cria os links de seu site para o primeiro endereço citado, escondendo
dessa forma a linguagem da página e as variáveis de include, evitando que
usuários mal intencionados possam injetar códigos maliciosos (usando, por
exemplo, o XSS).
As utilidades do arquivo .htaccess
são inúmeras e nesse tutorial foi
priorizado o uso para tornar as páginas ou sites mais seguros. Obviamente,
para tornar uma página segura, deve-se priorizar uma programação bem feita das
páginas e uma configuração correta dos serviços e/ou protocolos do servidor,
mas o uso do .htaccess
pode servir como uma ferramenta de ajuda e as
vezes mais do que isso.
É importante ressaltar que o uso de .htaccess
não deve sobrepor ao uso
correto (configurações corretas) do arquivo principal httpd.conf
do Apache
pelas razões aqui citadas de segurança , por razões de segurança e desempenho
principalmente.
Thiago Estrela é Graduando em Ciência da Computação pela Universidade Federal de Lavras (UFLA)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários