Neste artigo veremos alguns comandos para utilizar em sua aplicação através do arquivo .htaccess, acompanhe os detalhes logo abaixo:
Criar arquivo .htaccess
- Para criar um arquivo .htaccess abra um dos editores como o Notepad++ ou Bloco de Notas.
- Crie um arquivo e então salve-o como .htaccess.
- Vamos às dicas de utilização, lembrando antes que várias delas exigem a utilização do módulo mod_rewrite no servidor. Verifique antes de tudo se ele se encontra habilitado no Apache.
Não utilize os comandos abaixo sem um breve conhecimento, ou sem realizar os testes necessários. Qualquer utilização indevida poderá acarretar em erros no carregamento do seu site.
Lembrando que as instruções contidas nessa página só são válidas para ambientes Linux.
Bloquear
Bloquear os visitantes com base no referring domain
- Você pode também impedir que determinados visitantes acessem seu site com base no “referring domain”, ou seja, com base no site que “indicou” o seu a eles.
- Digamos que exista algum link para seu site, por algum motivo, em algum “site duvidoso” na Rússia. Ou qualquer outro motivo, localização, etc:
RewriteEngine on
RewriteCond %{HTTP_REFERER} dominioproblematico1.com [NC,OR] RewriteCond %{HTTP_REFERER} dominioproblematico2.com [NC,OR] RewriteRule .* - [F]
- Você pode incluir/editar os “domínios problemáticos” conforme suas necessidades, ou até mesmo adicionar mais.
Bloquear hotlinks em imagens
-
Para evitar que outros utilizem imagens hospedadas em seu servidor, use o seguinte código:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?meusite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
- Ao usar o código acima, qualquer site que tentar utilizar suas imagens será impedido. Não se esqueça de substituir ”meusite.com” com a URL.
- Por exemplo: ”codigofonte.com.br/” , ”meublog.net/”, etc.
- Repare também que o código acima previne hotlinks em imagens com as extensões .jpg , .jpeg , .png e .gif . Você pode alterar também esta linha do código, adicionando novos tipos de arquivos, removendo, etc. Apenas lembre-se de respeitar a sintaxe.
- Adicione a linha abaixo ao final do arquivo, logo abaixo de “RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]”:
RewriteRule .*\.(jpg|jpeg|png|gif)$ /imagens/imagemalerta.jpg [L]
- Lembre-se de que neste caso a imagem “imagemalerta.jpg” deverá existir dentro do diretório “/imagens/”, em seu servidor web.
- Se ao invés de exibir uma outra imagem você desejar exibir simplesmente um erro 403 (Forbidden), utilize o código abaixo no lugar:
RewriteRule .*\.(jpg|jpeg|png|gif)$ - [F]
Protegendo seus arquivos
Protegendo seu arquivo .htaccess
- Para impedir o acesso ao .htaccess e aumentar ainda mais a segurança do seu site, basta adicionar o seguinte código a ele mesmo:
RewriteRule .*\.(jpg|jpeg|png|gif)$ - [F]
Protegendo a área administrativa do WordPress
- Se você utiliza o CMS WordPress, nunca é demais proteger sua área administrativa, prevenindo invasões e ataques. Crie um arquivo .htaccess conforme explicado abaixo e o coloque dentro da pasta /wp-admin/:
order deny,allow
deny from all
allow from 79.187.22.68
- Note que este é um método de proteção um tanto quanto drástico. Estamos aqui liberando o acesso à área administrativa do WordPress para um único IP.
- O seu, no caso. Altere o código acima e substitua “79.187.22.68″ pelo seu IP. Para descobri-lo, basta acessar este link ou este.
- No Windows, você pode também acessar o prompt do DOS e digitar o comando abaixo, seguido de um :
ipconfig
- Já no Linux, utilize um dos comandos abaixo, também com um em seguida:
/sbin/ifconfig -a
ou
ifconfig -a
-
OBS: esta proteção terá também um “custo”.
- Caso seu IP seja dinâmico, você terá que alterar o .htaccess acima praticamente todos os dias, removendo o IP “velho” e adicionando o “novo”. Mas a segurança extra vale a pena, é claro.
Protegendo o arquivo wp-config.php do WordPress
- O arquivo wp-config.php do WordPress, localizado na raiz da instalação do sistema, é outro elemento importantíssimo do CMS. Ele guarda, por exemplo, informações da base de dados em utilização (nome do banco, usuário, senha). Isto dentre outros dados críticos.
- Desabilitar o acesso a ele também é essencial para manter o seu blog em segurança. Use o seguinte código:
order allow,deny
deny from all
Protegendo a pasta wp-content do WordPress
- Outra área crítica do WordPress, na pasta wp-content que se encontram arquivos de temas, de plugins e também os arquivos enviados para o servidor para a devida inserção em postagens, por exemplo (imagens, etc).
- Utilize o código abaixo em um arquivo .htacess e o envie para a pasta “/wp-content/”:
Order deny,allow
Deny from all
Allow from all
- O snippet acima fará com que upload de arquivos seja feito somente para os especificados no código.
Proteger diretório com senha
- Uma das funcionalidades mais usadas e bacanas do .htaccess: proteger um diretório qualquer com senha.
- Para acessar o diretório em questão (e, consequentemente, tudo o que estiver dentro dele), o visitante deverá informar um “usuário” e uma “senha”.
- Observe que aqui deveremos utilizar dois arquivos: o .htaccess e o arquivo que conterá as senhas, o .htpasswd . O .htaccess você já sabe como criar, e para criar o arquivo das senhas, o .htpasswd , utilize este gerador online (isto porque as senhas devem ser transformadas em hashs MD5).
- No site ”Htpasswd Generator”, informe o usuário e a senha. Em seguida clique no botão Create .htpasswd file. Repita o processo quantas vezes forem necessárias para transformar todas as senhas desejadas em hashs MD5.
- O gerador fornece o resultado logo em seguida, e é isto que você deve copiar e colar no arquivo .htpasswd (um conjunto de usuário e senha por linha). Cada conjunto de “usuário” e “senha” é mais ou menos igual ao exemplo abaixo:
teste:$apr1$7KeyxOFe$sEEZhgvhSMKkHQTbXkqjs0
- Este procedimento também pode ser realizado através do SSH, vale lembrar. Use o comando abaixo no prompt após se conectar ao servidor:
htpasswd -c /home/usuario/.htpasswd nomedousuario
- Onde “/home/usuario/” é o diretório onde o arquivo será gerado, e “nomedousuario” é, bem, o nome do usuário. Durante este procedimento você será solicitado a informar uma senha para o usuário em questão.
- Para adicionar novos usuários (lembrando que você sempre será solicitado a informar as respectivas senhas), use o comando abaixo:
htpasswd /home/usuario/.htpasswd nomedousuario2
- Observe que nos comandos acima, o parâmetro ”-c” foi utilizado para criar o arquivo .htpasswd já com um usuário.
- Já no segundo comando o parâmetro não é necessário, pois estamos adicionando um novo usuário (nomedousuario2) a um arquivo .htpasswd já existente.
- E assim por diante. Mas, continuando, após a criação do .htpasswd, envie-o para um diretório acima de sua pasta raiz.
- Por exemplo, um nível acima de sua pasta “public_html” (/home/usuario/”, digamos).
- Vamos agora à criação do .htaccess para a proteção do diretório, ressaltando que este arquivo deve ser enviado para a pasta que vai ser protegida:
AuthType Basic
AuthName "Acesso Restrito!"
AuthUserFile /home/usuario/.htpasswd
Require valid-user
Observe o seguinte:
- AuthName: é uma mensagem que pode ser customizada conforme você desejar. Esta mensagem aparecerá na janela na qual serão soliciados os dados de login;
- AuthUserFile: caminho absoluto para o arquivo .htpasswd;
Pronto. Seu diretório foi protegido com senha. Lembre-se de realizar as alterações necessárias relativas aos caminhos, nomes de pastas, usuários, senhas, etc.