Proteger um site com palavra-passe usando .htaccess e .htpasswd – Manutenção e acesso

Como ativar um modo de manutenção seguro e limitar o acesso a utilizadores selecionados

Ao desenvolver um site, rever conteúdos ou mostrar antecipadamente uma nova página a um cliente, esta não deve necessariamente estar acessível a todos os visitantes. Uma solução simples e muito utilizada consiste na proteção por palavra-passe através de .htaccess e .htpasswd. Esta proteção funciona no servidor e impede que visitantes sem credenciais vejam o conteúdo do site.

Neste artigo, explico passo a passo como funciona a proteção por palavra-passe, quando é útil, quais são as suas vantagens e desvantagens e que alternativas existem. No final, poderá proteger de forma segura e correta todo o site ou subpastas específicas através de .htaccess.

O que é um ficheiro .htaccess?

O ficheiro .htaccess é um ficheiro de configuração utilizado principalmente por servidores web como Apache e LiteSpeed. Encontra-se na pasta do site e permite aplicar definições no servidor sem alterar a configuração principal do servidor web.

Funções habituais do ficheiro .htaccess:

  • Ativar a proteção por palavra-passe
  • Criar redirecionamentos e regras de reescrita
  • Configurar a cache
  • Definir páginas de erro
  • Permitir ou bloquear o acesso de determinados endereços IP

O ficheiro .htaccess é ideal para a proteção por palavra-passe, pois é configurado rapidamente e não requer alterações diretas no servidor.

O que é um ficheiro .htpasswd?

O ficheiro .htpasswd contém utilizadores e palavras-passe cifradas que o servidor web utiliza para autenticação. É guardado separadamente, normalmente fora do diretório web público, para que não fique acessível a partir do exterior.

Exemplo:

user:secret
#beispiel: test:test123242345
test: $apr1$547x6czg$ZOB.RvFfT2JdN1KfOvuUF0

Importante:
As palavras-passe são guardadas de forma cifrada. Os formatos Apache com MD5, SHA ou bcrypt são os mais utilizados. Nunca devem ser guardadas palavras-passe sem cifragem.

Pode gerar palavras-passe com:

  • geradores de htpasswd
  • Consola Linux: htpasswd -nb utilizador palavra-passe
  • ferramentas online com SSL, apenas para testes

Onde deve ser guardado o ficheiro .htpasswd?

O ficheiro .htpasswd deve ficar sempre fora da raiz web pública, nunca em /public_html, /www ou /htdocs. Um caminho seguro seria, por exemplo:

/home/username/secure/.htpasswd

Ou, em ambientes de alojamento:

/var/www/.secrets/htpasswd

O caminho deve ser escolhido de forma que não seja acessível através do navegador.

Proteção por palavra-passe com .htaccess – Exemplo

A configuração básica tem o seguinte aspeto:

AuthUserFile /home/benutzer/secure/.htpasswd
AuthGroupFile /dev/null
AuthName "Passwortgeschuetzter Bereich"
AuthType Basic
Require valid-user

Assim que este ficheiro for colocado na pasta pretendida, essa pasta e todas as subpastas ficam protegidas.

É possível proteger apenas subpastas?

Sim, é até bastante comum. Se tiver uma versão beta na subpasta /pre-visualizacao, crie aí um ficheiro .htaccess próprio. O resto do site continuará acessível.

Proteção por palavra-passe para domínios ou subdomínios específicos

Também funciona sem problemas. Cada domínio e subdomínio pode utilizar os seus próprios ficheiros .htaccess. Assim, pode proteger completamente um domínio de testes enquanto o domínio principal permanece acessível.

Exemplo de configuração dependente do domínio:

SetEnvIf Host my-domain.test passreq

AuthType Basic
AuthName "Password Required"
AuthUserFile /home/user1234/meinewebsite/htpwd/.htpasswd

Require valid-user

Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any

Desta forma, pode decidir, consoante o nome do domínio, se é necessária uma palavra-passe.

Com que servidores web funciona?

O método .htaccess funciona com:

  • Apache
  • LiteSpeed
  • OpenLiteSpeed, com algumas limitações

.htaccess não é suportado por:

  • Nginx
  • IIS (Microsoft)

No Nginx, a proteção por palavra-passe deve ser configurada na configuração do servidor e não através de .htaccess.

Vantagens e desvantagens da proteção por .htaccess

VantagemDesvantagem
Muito fácil de configurarNão funciona com Nginx sem acesso à configuração do servidor
Não requer plugins nem softwareA janela de início de sessão não pode ser personalizada
Proteção no servidorA autenticação Basic Auth envia o nome de utilizador e a palavra-passe codificados, mas não cifrados
Ideal para um modo de manutenção ou uma pré-visualização protegidaInseguro sem HTTPS
Funciona para sites completos ou pastas específicasPode tornar os sistemas de cache mais lentos

Importante:
Utilize sempre HTTPS para que as credenciais sejam transmitidas de forma cifrada.

Quão segura é a proteção por palavra-passe?

Quando configurada corretamente, a autenticação Basic Auth oferece segurança suficiente para páginas de pré-visualização, ferramentas internas ou ambientes de desenvolvimento. No entanto, não substitui um sistema de início de sessão complexo para áreas de membros ou aplicações web.

Recomendações para segurança máxima:

  • Ativar HTTPS
  • Gerar palavras-passe com bcrypt
  • Guardar o ficheiro .htpasswd fora do diretório web
  • Utilizar também uma lista de endereços IP permitidos, se necessário

Que alternativas existem?

Lista de endereços IP permitidos

Permitir o acesso apenas a partir de determinados endereços IP:

Order deny,allow
Deny from all
Allow from 123.123.123.123

Plugin de modo de manutenção

Para WordPress, Joomla, Shopware e outros CMS existem plugins que apresentam um modo de manutenção com um modelo próprio.

Autenticação no servidor (Nginx)

No Nginx, a autenticação é definida no ficheiro server.conf.

Proteção por palavra-passe no painel de alojamento

O Plesk e o cPanel oferecem funções próprias de proteção de diretórios por palavra-passe.

Restrição de acesso baseada em passkey ou token

Os ambientes de desenvolvimento modernos podem utilizar ligações com token em vez de pedidos de palavra-passe.

Este artigo foi traduzido com a ajuda de IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Scroll to Top