Informática NumaBoa MASTERDicas - as dicas para webmasters
.htaccess - proteção com senha
webmaster NumaBoa



..... PROTEÇÃO COM SENHA

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:81x8xIBUZnuLw

É 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) e para Windows é o MD5 modificado para Apache (descrito na rfc131 e que você pode encontrar na Internet RFC/STD/FYI/BCP Archives).

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.

Senhas htpasswd NumaBoa

Nome do usuário:
Senha:

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). 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
   <Limit GET>
   require user numaboa
   require user sobmedida
   </Limit>


..... TESTE DE ÁREA PROTEGIDA

Foi exatamente da forma acima descrita que preparei uma área protegida no setor MASTERDicas da Aldeia. Se tiver curiosidade, tente acessar esta área com nome de usuário numaboa e senha numaboa. Como abri a área para múltiplos usuários, também como descrito acima, o usuário sobmedida com senha sobmedida também está autorizado. Você pode usar qualquer um dos dois para entrar na

ÁREA PROIBIDA

..... EXEMPLOS DE CONFIGURAÇÃO

Índice htaccess
Documentos de erro
Proteção com senha
Ativar SSI
Bloquear IP
Alterar página índice
Redirecionamento
Esconder o htaccess
Adicionar tipos MIME
Evitar hot linking
Impedir listagem de diretório

Leia com atenção as diretivas do Apache, em especial os comandos do htaccess, de preferência na fonte - Diretivas do Apache. Está em inglês mas é tranquilo.


| AAAA | Página Inicial | Mapa do Site | Novidades | Busca | Indique esta página | Mestre da Teia | Voltar |
| Localizador || @ Info NumaBoa > MASTERDicas > htaccess > Proteção com senha
Créditos: vovó Vicki

webdesign sobMedida by vickiSoft - /informatica/webmaster/htaccess/htaccess2.php (25.02.03) versão 1.1 de 04.07.03
Licença Creative Commons 1998-2006 Aldeia NumaBoa
Exceto onde especificamente declarado, todo material deste site é disponibilizado de acordo com a Licença Creative Commons.