Pergunta

Eu queria saber se proteger um diretório web com um arquivo .htaccess (com o arquivo .htpasswd fora do webroot apache público) é uma maneira segura de proteger um diretório (e seu conteúdo).

Alguém poderia explicar o de e Don'ts deste tipo de proteção?

Foi útil?

Solução

A autenticação será passado desprotegido por cima da rede, se você usar o protocolo http padrão. Esta não é considerado seguro, como alguém poderia cheirar a senha.

Se você restringir acesso a https é bastante seguro. Isto significaria para instalar e ativar o módulo apache para SSL criptografado tráfego HTTP (porta 433, https: // na linha de endereço do navegador) e desativar o tráfego HTTP padrão para este diretório na porta 80. Nome de usuário e senha será SSL criptografada. Certifique-se de selecionar uma senha boa (longo e complexo o suficiente, não é possível adivinhar ou força bruta).

configuração do Apache pode ser complicado, assim que tomar muito cuidado para mantê-lo simples e teste contra possíveis erros.

Pode ser uma boa idéia para mover a configuração de restrição de acesso a partir do arquivo .htaccess para o arquivo de configuração do Apache principal, se você tem conhecimento e controle do mesmo. também poderia ser mais fácil para você para mantê-lo no arquivo Htacces. E "fácil" pode ser mais seguro. Fazê-lo da maneira que sente simples e seguro e fácil de manter e lembre-se para você.

Esta é uma configuração simples para melhorar a segurança e proteger contra acidentes:

Se você tem php e-mail configurado na máquina onde o diretório protegido é que você pode escrever um script simples alarme. Apenas um arquivo php "alarm.php" com uma única linha com a função php mail que você envia um e-mail, dizendo-lhe que a proteção htaccess não funciona.

Se o seu domínio e diretório caminho é " http://mybox.example.com/secretdir /alarm.php " você pode digitar isso em um navegador em um computador diferente e você deve obter que o correio enquanto htaccess está 'aberto'. Se ele é protegido você pode digitar o nome de usuário e senha e você também irá receber o e-mail.

Para fazer um alarme automatizado fora deste você poderia usar uma caixa de unix diferente que tenta obter esta url a cada 15 minutos ou assim. A linha para o crontab:

* / 15 * * * * user1 wget http://mybox.example.com/ secretdir / alarm.php

user1 é um usuário nesta máquina que é permitido executar wget, e wget deve ser instalado.

Você pode desativar a proteção htaccess como um teste e deve receber pelo correio a cada 15 minutos.

De minha experiência, é uma falha de segurança comum que um diretório que você acha que é protegido perde a sua proteção quando você mudar alguma coisa e você não está ciente, desta forma você obter o e-mail que avisa.

Outras dicas

Tanto quanto eu sei, htaccess é fácil de cortar se for interceptado (F. E. Você está entrando em um café internet com uma rede sniffer em execução). Tanto quanto eu sei , autenticação Digest ajuda a superar esse problema.

.htaccess é forma bastante normal como fazer alterações de configuração por diretório para recursos atendidos pela Apache HTTPD em casos onde você não tem acesso para arquivo de configuração principal / não ter acesso root.

Se você tiver acesso à configuração principal, que é muito mais fácil ter toda a configuração (incluindo autenticação) colocado em um local central (mesmo que seja dividida em vários arquivos), onde não é tão fácil de esquecer isso. Da minha experiência, posso dizer, é apenas uma questão de tempo antes que você esqueça sobre seus arquivos .htaccess.

A documentação oficial está mencionando em várias ocasiões que o uso de arquivos .htaccess deve ser evitado quando possível.

Se o uso de .htaccess é sua única opção, certifique-se de seguir as precauções de segurança gerais como com configuração HTTPD principal, ou seja, impedir que usuários não autorizados de lê-los, os arquivos são lidos por servidor, certifique-se que você tem listagem de diretório desativado, certifique-se sempre senha são armazenados em formato criptografado / hash, etc.

Para mais informações, por favor, verifique Apache htaccess tutorial

A .htaccess arquivo é bastante útil, mas ... isso não vai protegê-lo de alguém explorando seu código e ler qualquer arquivo que ele quer. Se o seu site (mesmo um pequeno script) será explorado, nem .htaccess nem outras soluções irá protegê-lo, como o hacker vai ganhar direitos do usuário que executa o script (normalmente www-data).

Este é especialmente doloroso em CGI, mas outros scripts estão sendo cortado também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top