Em tempos de terrorismo virtual, nada mais natural do que cuidar da segurança do seu site. Para tanto, é imprescindível fazermos bom uso do arquivo .htaccess, que, além de precauções contra má intenções de usuários espertos (leia-se hackers), oferece recursos diversos muito úteis. Vamos conhecê-los!
O .htaccess é basicamente um arquivo de configuração utilizado em servidores web, como Apache. Seu nome vem de Hypertext Access = acesso os hipertextos. O arquivo funciona a nível de diretórios e permite que administradores gerenciem e manipulem configurações e acessos de forma descentralizada.
As configurações presentes nesse arquivo são aplicadas ao diretório no qual ele se encontra e também a todos os seus subdiretórios, caso existam. Vale lembrar ainda que a presença de um outro .htaccess em um subdiretório anula a ação do que se encontra um nível acima. Ou seja, o .htaccess do subdiretório passa a valer para o mesmo e também para todas as suas subpastas. E assim por diante. É sempre bom ficarmos atentos a estes detalhes.
CRIAR UM ARQUIVO .HTACCESS
Crie um arquivo .htaccess facilmente usando um editor de texto qualquer, por exemplo o Bloco de Notas padrão do Windows. Salve-o como “.htaccess” (sem aspas e com o ponto antes do nome) sem extensão ao final. Logo, nada de “.htaccess.txt”, mas simplesmente ".htaccess". Nós o colocaremos no diretório raiz da nossa web.
PROTEGENDO O .HTACCESS
Primeiramente, proteja o seu arquivo configurador de inserções malévolas ou equivocadas com as seguintes instruções:
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
order allow,deny
deny from all
satisfy all
</files>
PERSONALIZANDO PÁGINAS ESPECIAIS
Com ele, você pode personalizar páginas especiais, por exemplo, a página de erro ("404 Not Found") e de redirecionamento em caso de falha do servidor (500). No nosso exemplo, vamos estabelecer uma pasta exclusiva para eles denominada "erros".
# páginas especiais
ErrorDocument 400 /erros/badrequest.html
ErrorDocument 401 /erros/authreqd.html
ErrorDocument 403 /erros/forbid.html
ErrorDocument 500 /erros/serverr.html
BLOQUEANDO LISTAGEM DE DIRETÓRIOS E ARQUIVOS
Você pode também utilizar o .htaccess para evitar a listagem de diretórios. Para evitar que o conteúdo de um diretório seja exibido quando algum usuário o acessar, por exemplo, quando o usuário usa um comando do tipo www.seusite.com.br/nomedapasta” ou “www.seusite.com.br/imagens”.
Basta somente adicionar o snipper seguinte:
# não indexar diretórios
Options -Indexes
CONTROLANDO O ACESSO A DIRETÓRIOS
Evite que você terceiros acessem determinados arquivos e pastas em seu site. Você possui um script qualquer instalado, por exemplo, e deseja evitar que visitantes acessem sua pasta “includes”. Mas, por outro lado, você precisa garantir que qualquer página do site em questão possa “chamar” sem problemas os arquivos contidos nesta pasta. Basta, então, adicionar um .htaccess com o seguinte conteúdo na tal pasta, no caso, a “includes”:
# acesso restrito
deny from all
Caso queira abrir exceção para um determinado IP, use o bloco a seguir:
# Acesso restrito!
order deny,allow
deny from all
allow from NÚMERO DO IP
DEFININDO A PÁGINA INICIAL DO SITE
Defina que página deve abrir quando o usuário acessar sua web. O padrão é index.html ou index.php, mas você optar por outra qualquer, por exemplo empresa.php.
A ordem a ser dada é:
# página inicial
DirectoryIndex index.html index.php index.html
No exemplo acima, os arquivos index.htm, index.html e index.php serão considerados como páginas de índice, obedecendo essa ordem. Ou seja, o sistema vai procurar por index.htm e, caso não a encontre, passará a procurar pela próxima indicada.
Se quiser informar outra, siga o mesmo procedimento:
# página inicial
DirectoryIndex empresa.html
Pelo exemplo acima, quando o usuário visitar o seu domínio, por exemplo, www.seusite.com.br, ele será automaticamente redirecionado para www.seusite.com.br/empresa.html.
URL AMIGÁVEIS
Com .htaccess, você também pode reescrever URLs para torná-las mais amigáveis, tanto para os motores de busca quanto para os visitantes.
Por exemplo, vamos dizer que você tem uma loja virtual e nela venda diversos produtos. Digamos, agora, que suas URLs possuem a seguinte estrutura:
http://www.meusite.com/produto.php?id=12
Simplifique a estrutura do exemplo para apenas:
http://www.meusite.com/produto-12.html
Então, reescreva produto.php?id=12 para produto-12.html fazendo assim:
RewriteEngine on
RewriteRule ^produto-([0-9]+)\.html$ produto.php?id=$1
Reescrevendo produto.php?id=12 para produto/hub-usb/12.html:
RewriteEngine on
RewriteRule ^produto/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ produto.php?id=$2
REMOVENDO EXTENSÕES DE URLS
Remova a exibição das extensões dos arquivos das URLs, por exemplo, ao invés de seu visitante visualizar algo como contato.php na barra de endereços do navegador, ele pode visualizar simplesmente contato.
Faça isso acrescentando no .htaccess:
# removendo extensão php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
No exemplo acima, a extensão .php será removida/escondida. Você pode também usar o mesmo snippet para esconder outras extensões de arquivos, como por exemplo .html. Basta realizar as devidas substituições.
FORÇAR DOWNLOAD DE CERTOS ARQUIVOS
Você pode forçar que um determinado tipo de arquivo (por exemplo os livros digitais em PDF) seja baixado pelo usuário, ao invés de esse arquivo ser executado direto.
Isso pode ser feito assim:
# forçar download de PDF
AddType application/octet-stream .pdf
FORÇAR TEXTO EM UTF-8
Para evitar problemas de codificação e renderização de páginas por causa da codificação de texto, force o uso da codificação UTF-8, padrão para nosso idioma:
#forçar UTF-8
<FilesMatch ".(php|htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>
Nenhum comentário:
Postar um comentário