Apache2 dá acesso a locais específicos (arquivo .htaccess)

1

Alguém poderia me ajudar com a criação de um arquivo .htaccess ou como posso limitar o acesso a locais específicos?

Todos os meus arquivos acessíveis pelo usuário estão localizados em /var/www/website , mas também tenho mais algumas pastas, como /var/www/website/secrets, var/www/website/tools , que eu quero que elas fiquem inacessíveis em um navegador da web.

A minha principal questão é que tenho cronjobs executando scripts php de var/www/website/tools e não quero negar acesso a eles também.

    
por ACristian24 21.01.2018 / 13:27

1 resposta

2

Para bloquear todo o acesso da web a esses diretórios, em cada um deles basta soltar um arquivo .htaccess com a seguinte linha:

  • Apache 2.4.x:

    Require all denied
    
  • Apache 2.2.x:

    Order deny,allow
    Deny from all
    

Isso tudo obviamente pressupõe que você tenha AllowOverride configurado para que arquivos .htaccess possam ser usados. Se não, então você pode colocar essas linhas na entrada virtualhost na configuração global envolto em algo como isto:

<Directory "/var/www/website/secrets">
    ...whichever entry from above here....
</Directory>

Além disso, desde que seus crons invoquem os scripts diretamente (com o binário PHP) e não estejam fazendo coisas bobas como curl ou wget de volta para si mesmos, então essas entradas .htaccess não terão nenhum efeito nelas, pois somente afeta o tráfego baseado na Web (coisas que passam pelo Apache).

Eu também recomendaria dar uma leitura à documentação do Apache sobre este assunto - ela realmente é bastante informativa e útil:

por 21.01.2018 / 18:58