Protegendo pastas de domínios hospedados em Linux

De Wiki @ Inetweb

Nesse artigo vamos mostar uma forma de proteger o diretório de domínios hospedados em ambiente Linux com o arquivo ".htaccess".

O .htaccess é um arquivo sem nome, somente o "." e a extensão htaccess.

Antes de usar esse script, é necessário saber que ele funciona em um servidor Apache, e que o script tem como base o diretório raiz do servidor.

Para saber o diretório raiz do servidor, crie um arquivo .php com o conteúdo:

<?php
phpinfo();
?>

Coloque no seu servidor e carregue via http. Isso vai gerar uma série de informações sobre o servidor.

Vá até a linha: Additional Modules>Environment

Na tabela abaixo busque por DOCUMENT_ROOT, aqui é a segunda linha da tabela.

O caminho especificado pode ser algo parecido com:


/home2/linkprot/public_html/


a partir do public_html entram seus arquivos, index, pastas, etc...

Com base nessa linha acima, temos uma pasta chamada protegido/ que desejamos proteger, ou seja, o caminho até ela fica:


/home2/linkprot/public_html/protegido


Agora vamos começar a restrição a pasta.

Crie um arquivo com esse código: (baseado na caminho acima)


AuthName "Documento Seguro"

AuthType "Basic"

AuthUserFile "/home2/linkprot/public_html/protegido/.htpasswd"

require valid-user

AuthName ( mensagem mostrada na caixa suspensa )

AuthType ( tipo de autenticação )

AuthUserFile ( caminho até o arquivo que tem os usuários e senhas )

require valid-user ( solicita a validação para acesso )

Salve esse arquivo como: .htaccess e coloque na pasta: protegido


Você notou que há o arquivo .htpasswd, ele é onde deve estar quem tem acesso ao diretório, e ele pode ficar onde você quiser, nesse exemplo, vamos colocar ele no mesmo diretório protegido.

Os usuários e senhas no arquivo .htpasswd devem estar no formato:


login1:senha1

login2:senha2

etc...


Porém as senhas devem ser criptografadas, para isso crie um arquivo php com o código:

<?php
// senha1 será convertido, e jogado no .htpasswd
// mas na caixa de login, entra o senha1 mesmo
echo crypt("senha1");
?>

Pronto, o que for gerado, você usa no arquivo .htpasswd, ficando algo assim:


login1:DNn9xODzhTVa6

login2:eAn9/xOz.fh3Ge4

etc...


Com os arquivos .htaccess e .htpasswd em mãos, só colocar no diretório a ser protegido junto com os arquivos que estarão protegidos e pronto.

Só fazer o acesso via http para teste.

Observação:

- Para criar os arquivos, abra o bloco de notas, adicione os textos passados no artigo clique em Salvar Como... em Salvar como tipo, escolha Todos os arquivos.


Veja também