Web Servers - htaccess rapidinho: Proteção com senha

Posted by webmaster | Web Servers |


Existem vários métodos para proteger determinadas áreas do seu site. Há alguns baseados em liguagens de servidor - como Perl, PHP ou ASP - outros baseados no lado do cliente - como JavaScript - e existe o método “servidor puro” com o arquivo htaccess.

Uma requisição/resposta do lado do servidor é sempre mais segura que uma requisição/resposta dependente do cliente. O método mais seguro, sem dúvida alguma, é através do htaccess… com os devidos cuidados!

O arquivo .htpasswd

A primeira coisa a fazer é criar um arquivo chamado .htpasswd. A convenção do nome para este arquivo é a mesma do .htaccess. É como se fosse um arquivo sem nome com a extensão .htpasswd, ou seja, um ponto seguido de htpasswd.

Este arquivo conterá o nome e a senha encriptada de todos os usuários que poderão ter acesso à area protegida. Por exemplo, o usuário com nome numaboa e senha numaboa pode ser registrado como uma das alternativas abaixo:

numaboa:$1lX5fDPH1jPk
numaboa:62V4UJ/K/c/Wc
numaboa:81×8xIBUZnuLw

É claro que ninguém em sã consicência vai usar nome e senha iguais, mas este é apenas um exemplo. Observe que o nome fornecido é colocado no início, seguido por dois pontos e pela senha encriptada de acordo com o método proposto para o Apache: para Unix e Linux é usada a função crypt() do próprio Apache (descrito na documentação htpasswd do Apache (http://httpd.apache.org/docs/programs/htpasswd.html)) e para Windows é o MD5 modificado para Apache (descrito na rfc131 e que você pode encontrar na Internet RFC/STD/FYI/BCP Archives (http://www.faqs.org/rfcs/rfc1321.html)).

Se você procurar pela web vai encontrar alguns sites que oferecem o serviço de encriptação com os chamados htpasswrd generator. Aqui na Aldeia, também não poderíamos ficar de fora.

Se o seu sistema operacional é o Linux, o programa gerador de senhas provavelmente já está instalado em /usr/bin/htpasswd. Para os usuários do Windows, encontrei um pequeno aplicativo que roda em DOS e que gera as senhas. Se tiver interesse, você fazer o download do htpasswd.exe (76 Kb (http://www.numaboa.com.br/informatica/webmaster/htaccess/htpasswd.exe)). Abra a janela do DOS (botão Iniciar / menu Executar / digitar cmd ou command), vá para o diretório onde se encontra o executável e digite htpasswd.exe para obter a ajuda. Daí, é só gerar o arquivo com as senhas.

Segurança: é óbvio que você deve escolher um diretório que não seja acessível pela web para garantir o sigilo dos dados do seu arquivo htpasswd. Coloque-o num diretório acima do diretório raiz. Este arquivo, assim como o htaccess, também precisa um upload em modo ASCII (e não em BINARY).

Configurando o arquivo htaccess

Se você ainda não criou seu arquivo .htaccess, faça-o agora. Inclua o seguinte código:

AuthUserFile /usr/local/seu/diretorioSeguro/.htpasswd
AuthGroupFile /dev/null
AuthName AreaProibida
AuthType Basic
require user numaboa

A primeira linha corresponde ao caminho completo do servidor para o seu arquivo htpasswd. Note que não se trata de uma URL e sim de um caminho de servidor. Verifique qual é o caminho correto servidor do seu site (eu costumo usar a função phpinfo() do PHP). Saiba também que, se você colocar o arquivo htaccess no diretório raiz, todo o site ficará protegido por senha - o que, provavelmente, não é a sua intenção.

Você pode usar qualquer nome para o seu arquivo de senhas, como senhas.txt ou qualquer outra coisa. Basta referenciá-lo corretamente. Além disso, se por acaso o caminho contiver nomes de diretórios com espaços, então será preciso colocar o caminho entre aspas - por exemplo “/usr/local/diretorio seguro/senhas.txt”.

AuthName é o nome da área protegida. Também pode ser qualquer nome que você desejar, mas evite caracteres especiais como $, %, ç ou ã.

AuthType é o tipo de autenticação. Neste caso foi escolhida a Basic porque se trata de uma autenticação porque estaremos usando a autenticação HTTP básica.

Com require user numaboa estamos indicando que apenas o usuário numaboa poderá ter acesso a esta área. Se quisermos aumentar a lista de usuários permitidos, devemos substituir require use numaboa por require valid-user. Neste caso, todos os usuários que estiverem no arquivo de senhas poderão acessar a área protegida.

Se quisermos que apenas os usuários explicitamente mencionados ou seja, apenas alguns da lista de senhas, possam acessar a área protegida, o bloco de código precisa ser:

AuthUserFile /usr/local/seu/diretorioSeguro/.htpasswd
AuthGroupFile /dev/null
AuthName AreaProibida
AuthType Basic

require user numaboa
require user sobmedida

Autor/fonte: Vovó Vicki

Tags:

Web Servers - htaccess rapidinho: Ativar SSI

Posted by webmaster | Web Servers |


SSI vem de Server Side Include que, traduzido livremente, significa incluir o lado do servidor. Se o seu servidor web 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.

Porém, aqui vai um aviso importante: obtenha primeiramente a permissão do seu servidor 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…

Código de ativação

Para ativar o SSI, inclua o código a seguir 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 realizados.

A última linha são apenas tranqueiras técnicas, mas que precisam constar para completar a ativação.

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 (a segunda linha abaixo):

AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Options Indexes Follow
SymLinks Includes

Porém tudo tem seu preço e 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 (a última linha abaixo):

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.

Autor/fonte: Vovó Vicki

Tags:

Web Servers - htaccess rapidinho: Bloquear IP

Posted by webmaster | Web Servers |


Tem um abelhudo infernizando a sua vida? Bisbilhotando seu site e dando trabalho? Bloqueio nele!

Adicione o seguinte código no seu arquivo htaccess - logicamente mudando os IPs para os desejados - pondo cada comando numa linha própria:

order allow,denydeny from 123.45.6.7
deny from 012.34.5.allow from all

Você pode recusar endereços IP ou blocos IP. O código acima nega acesso ao site se as requisições vierem do endereço IP 123.45.6.7 ou de qualquer subdomínio do bloco IP 012.34.5 (012.34.5.1, 012.34.5.2, 012.34.5.3, etc). Imagine só, com a segunda opção você pode até bloquear acessos vindos de determinado país. Coisa de louco…

É claro que, se você desejar, pode bloquear o acesso de todos usando deny from all ao invés de allow from all, mas isto não seria muito lógico - a não ser que queira fechar para balanço). Mas nem só de endereços IP vive o bloqueio. Você também pode usar nomes de domínios, por exemplo, allow from .numaboa.com ou deny from www.pentelho.com.br. O primeiro libera www.numaboa.com, andre.numaboa.com, etc. O segundo bloqueia apenas o que vier de www.pentelho.com.br.

Mudar página default

Que negócio é este de DirectoryIndex? Nada demais. É apenas o comando que permite especificar qual o arquivo que deve ser carregado quando chegar uma solicitação de diretório ou URL que não especifiquem uma página em especial (tipo http://www.numaboa.com/). Se você cansou de ver entrar seusite.com.br/index. html não tem problema - pode mudar para seusite.com.br/adoropizza.html.

DirectoryIndex adoropizza.html

Isto faz com que a página default de todos os diretórios do seu site passe a ser adoropizza.html. Mas, se você quiser poder usar outras páginas ou até scripts como default, basta adicionar referências a gosto:

DirectoryIndex adoropizza.html index.cgi index.pl nhaca.htm

Adicionando a linha acima ao seu arquivo htaccess e imaginando que o arquivo htaccess esteja no seu diretório raiz, o resultado será o seguinte: quando um usuário digitar seusite.com, adoropizza.html é a primeira a ser procurada no seu diretório raiz; se for encontrada, ela é enviada ao usuário e a procura pára por aí; se não for encontrada, index.cgi é a próxima… e assim por diante até nhaca.htm. Caso nenhum dos arquivos relacionados seja encontrado, aí entra o famigerado erro 404.

Lembre-se de que todos os diretórios abaixo do diretório raiz obedecem as regras ditadas pelo primeiro htaccess acima deles, a não ser que o diretório possua seu próprio htaccess. Se não existirem outros htaccess em subdiretórios, para todos os diretórios do site vale o htaccess do diretório raiz - as páginas default serão sempre as mesmas. É por isso que, mesmo não personalizando um htaccess próprio, as páginas default são index.html, index.htm, default.html, default.htm, etc - o pessoal do servidor já fez esta configuração inicial.

Já usei este expediente para “proteger” alguns diretórios, geralmente com gráficos ou scripts, os quais não queria que fossem listados. Fazia um htaccess para o diretório indicando uma página inexistente: Tchan! erro 404! Solução pouco elegante mas eficaz. Eu disse “usei”, não uso mais. Hoje utilizo redirecionamentos, aliás, nosso próximo tema.

Autor/fonte: Vovó Vicki

Tags:
Page 2 of 5«12345»