Informática Numaboa - Tutoriais e Programação
O arquivo .htaccess
Seg 26 Fev 2007 21:03 |
- Detalhes
- Categoria: Webmaster
- Atualização: Domingo, 12 Abril 2009 16:49
- Autor: vovó Vicki
- Acessos: 35588
Evitar hot linking
Na comunidade webmaster, "hot linking" é uma expressão amaldiçoada. Também conhecido como "roubo de banda" (bandwidth stealing), refere-se a links apontando diretamente para objetos não-html em servidores que não sejam do proprietário do site. Geralmente são gráficos, arquivos de javascript e de flash referenciados a partir de um site concorrente. O servidor da vítima é espoliado em largura de banda uma vez que o safado se diverte mostrando o conteúdo de uma área que não lhe pertence. O tipo mais comum de roubo de banda é de imagens gráficas.
Com o .htaccess é possível impedir o hot linking de modo que os que tentarem roubar imagens hospedadas no seu site recebam uma "porta" (the door - uma imagem quebrada) ou caiam na "boca do leão" (the lion's mouth - uma imagem à sua escolha, hehehe). Tem apenas um pequeno senão: seu servidor precisa ter o mod_rewrite instalado e habilitado. Consulte seu serviço de hospedagem para confirmar.
Explicado o assunto, veja a seguir como desabilitar o hot linking de imagens no seu site. Simplesmente adicione o código a seguir num arquivo .htaccess e faça o upload para o diretório que desejar:
RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www\.)?seudominio.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F]
Certifique-se de ter trocado "seudominio.com" pelo seu verdadeiro domínio. O código acima faz com que a imagem fornecida apareça quebrada. Se você preferir determinar a imagem que deve substituir a solicitada através de uma hot link, acrescente o seguinte:
RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www\.)?seudominio.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.seudominio.com/porcaria.gif [R,L]
O efeito do código acima é fornecer a imagem "porcaria.gif" ao invés da solicitada. Do mesmo modo, troque "seudominio.com" pelo nome correto.
Está mais do que na hora de acabar com a farra do roubo de banda! Um balde de água fria nos espertos
Server Side Includes - SSI
SSI vem de Server Side Includes que, traduzido livremente, significa incluir o lado do servidor. Se o seu serviço de hospedagem não tiver ativado o SSI para o seu site e você quiser fazer uso do serviço, é possível ativá-lo através do .htaccess.
AVISO IMPORTANTE: obtenha uma PERMISSÃO do seu hospedeiro antes de ativar o SSI através do .htaccess. Pode ser considerado "hacking" e uma violação do contrato de hospedagem o fato de você fazer a ativação sem a devida autorização. Melhor prevenir do que tentar remediar...
Para ativar o SSI, inclua as seguintes diretrizes no seu arquivo .htaccess:
AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes Follow SymLinks Includes
A primeira linha indica ao servidor que páginas com a extensão .shtml (para HTML analisado pelo servidor) seja válida: AddType text/html .shtml
A segunda linha adiciona um manipulador (handler), na verdade o bit SSI, em todos os arquivos com a extensão .shtml. AddHandler server-parsed .shtml diz para o servidor que todas as páginas com nome .shtml devem ser analisadas para verificar a existência de comandos de servidor e, caso existam, devem ser executados.
A última linha são apenas tranqueiras técnicas, mas que precisam constar para completar a ativação. A diretriz Options diz quais ações do servidor devem ser disponibilizadas. Minha sugestão é que você dê uma espiada no SSI na documentação do Apache - escolha a versão certa do webserver!
Prontinho -- seu SSI deve estar ativado. Mas agora não pense que será necessário mudar o nome de todas as páginas do seu site! Use um expediente mais inteligente... e transforme todas as páginas .html em analisáveis adicionando a linha destacada em negrito:
AddType text/html .shtml AddHandler server-parsed .html AddHandler server-parsed .shtml Options Indexes Follow SymLinks Includes
Como tudo tem seu preço, aqui vai outro ALERTA: AddHandler server-parsed .html forçará a procura de comandos SSI em TODAS as páginas .html, mesmo as que não possuam comandos de servidor. Se você exagerar no uso de SSI no seu site, é claro que você vai estressar o servidor. O SSI faz com que o servidor fique mais lento porque ele acaba realizando muito mais tarefas para servir uma página analisada. Para os usuários, a diferença é praticamente imperceptível, mas para o servidor...
Por outro lado, há profissionais da área que preferem "esconder" que estejam utilizando SSI e usam o expediente acima. Se as páginas não têm a extensão .shtml, é provável que os hackers não tentem alguma coisa, mesmo porque o SSI é altamente "hackeável".
Se você quiser usar SSI apenas nas páginas com extensão .shtml mas quer, por exemplo, que todas as páginas index.html sejam SSI, basta adicionar a linha destacada em negrito:
AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes Follow SymLinks Includes DirectoryIndex index.shtml index.html
Isto faz com que páginas index.shtml sejam as primeiras a serem procuradas num diretório (as chamadas páginas default). Caso não seja encontrada uma página com este nome, então a segunda opção passa a ser index.html. Mais adiante veremos mais sobre o DirectoryIndex.
Escondendo o .htaccess
Se você usa o .htaccess para proteger áreas do site com senhas, a informação da localização do arquivo de senhas pode ser facilmente obtida através do arquivo .htaccess. Se as permissões estiverem mal configuradas ou se o servidor não for dos mais seguros, um browser tem a possibilidade de mostrar o conteúdo do arquivo .htaccess através da interface padrão. Neste caso, tanto o seu site, como o servidor, estão comprometidos. Esta é a parte ruim da história. A parte boa é que é possível impedir que o .htaccess possa ser visto:
A primeira linha especifica que o arquivo chamado .htaccess possui uma regra. As regras ficam por conta da sua criatividade. Neste caso, a regra aplicada é emitir uma ordem de permissão e recusa com Order Allow,Deny e depois indicar que a leitura está bloqueada para todo mundo com Deny for all.Order Allow,Deny Deny from all
Com esta configuração, na maioria dos servidores, um usuário que tente ver este arquivo recebe um código de erro 403. Também é possível ajustar as permissões para o arquivo .htaccess através de um CHMOD para 644 ou RW-R--R--, uma medida de segurança adicional.
Fontes de Referência
- Tutorial do Apache: arquivos .htaccess (para a versão 2.2 do Apache)
- Apache Tutorial: Introduction to Server Side Includes (para a versão 2.2 do Apache, em inglês)