A autenticação HTTP é um tipo de autenticação básica disponível na maioria dos servidores web. Através dela, você pode liberar o acesso aos arquivos de uma determinada pasta de seu site apenas para pessoas cadastradas com um nome de usuário e senha válidos.
Cabe lembrar que linguagens de servidor, como PHP, oferecem um método mais eficiente de proteger o acesso de áreas do seu site através de cookies e variáveis de sessão, mas você pode, assim mesmo, utilizar a técnica que será apresentada aqui. Ela funciona, inclusive, em provedores que oferecem apenas hospedagem básica em HTML, sem acesso a qualquer tecnologia server-side.
Neste exemplo, vamos demonstrar como criar a autenticação usando o servidor Web Apache.
Passo 1: Modificando o arquivo .htaccess
Os arquivos .htaccess ficaram bastante conhecidos recentemente por causa das chamadas URLs amigáveis e todo essa história de Web 2.0, mas eles servem para bem mais do que deixar suas URLs bonitinhas.
A primeira coisa que você tem que fazer é criar a pasta que você quer proteger. Dentro dessa pasta, coloque (por exemplo: envie por FTP) um arquivo .htaccess com este conteúdo:
AuthType Basic AuthName "Documentos secretos" AuthUserFile /home/andre/public_html/teste/.htpasswd Require valid-user
Aqui as linhas que devem ser modificadas são a segunda e a terceira. Na segunda linha, você vai colocar, entre aspas, o texto que vai aparecer na janela que vai pedir a senha, neste exemplo: Documentos secretos.
Na terceira linha, você vai informar o caminho completo de um arquivo chamado .htpasswd , que é o arquivo que vai armazenar os nomes de usuário e senhas válidos. Se você não sabe qual é o caminho completo, pergunte ao seu provedor de hospedagem ou veja no seu CPanel ou outro sistema de administração, se disponível; O importante é que o arquivo .htpasswd esteja no local indicado pela linha do .htaccess. Neste caso, ele está dentro da pasta teste/, que é a própria pasta a ser protegida.
Passo 2: o arquivo .htpasswd
Esse arquivo guarda os usuários e senhas que têm permissão de acessar a pasta.
Pra criá-lo, você deve utilizar o comando htpasswd como root.
Se você tem acesso ssh ao seu servidor, pode executá-lo diretamente lá; Se não tem, pode criá-lo na sua máquina e, então, enviá-lo via FTP para o local adequado.
Na primeira vez que for usar o programa, digite isso:
# htpasswd -c .htpasswd andre
Esse comando cria (-c) um novo arquivo de senhas chamado .htpasswd (ele pode ter o nome qu você quiser, apenas preste atenção ao que está escrito no .htaccess) e já adiciona nesse arquivo um usuário chamado andre. Ao pressionar enter, ele vai pedir para que você digite a senha do novo usuário duas vezes.
A opção -c cria um novo arquivo, assim, deve ser usada só uma vez. Para adicionar mais usuários, use o comando com a sintaxe a seguir:
# htpasswd .htpassword joao
Onde .htpasswd é o arquivo no qual vc deseja adicionar o usuário e joao é o nome do usuário.