| MASTERDicas - as dicas para webmasters .htaccess - proteção com senha |
![]() |
|
|
..... 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. 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 |
|
|
| ..... 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. | |