Os arquivos do host virtual devem conter doisdiretivas?

Os arquivos do host virtual devem conter doisdiretivas?

Ouvimos dizer que uma boa prática de segurança é redefinir tudo no host virtual para não permitir nada e depois ter outra diretiva para permitir acesso específico - algo como isto:

<VirtualHost *:80>
  DocumentRoot /home/example/public_html

  <Directory />
    AllowOverride None
    Order Deny,Allow 
    Deny from all
  </Directory>

  <Directory /home/example/public_html >
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order Allow,Deny
    Allow from all
  </Directory>
</VirtualHost>

Faz sentido, mas não temos certeza, então adoraríamos algumas opiniões sobre a melhor maneira de configurar as coisas.

Responder1

Se você realmente usar a <Directory />diretiva conforme escrita lá, não estará alterando nada para esse host virtual, mas, em vez disso, estará declarando as mesmas substituições repetidamente para o diretório /.

Portanto, essas opções não fizeram nada ou, na melhor das hipóteses, apenas a última <Directory />seção encontrada foi aplicada:

https://httpd.apache.org/docs/current/sections.html#merging

Se essa seção parecer igual para todos os hosts virtuais, isso não causará problemas, mas se alguns hosts virtuais forem diferentes e o número de hosts virtuais mudar ao longo do tempo, será confuso descobrir qual <Directory />diretiva foi aplicada.

Eu removeria a <Directory />seção de todos os hosts virtuais e a declararia uma vez, em uma configuração global.

informação relacionada