좋은 보안 방법은 가상 호스트의 모든 것을 아무것도 허용하지 않도록 재설정한 다음, 다음과 같이 다른 지시어를 사용하여 특정 액세스를 허용하는 것이라고 들었습니다.
<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>
이는 어느 정도 의미가 있지만 확실하지 않으므로 이를 설정하는 가장 좋은 방법에 대한 의견을 듣고 싶습니다.
답변1
여기에 작성된 지침을 사용하면 <Directory />
해당 가상 호스트를 변경하지 않고 대신 해당 디렉토리에 대해 동일한 재정의를 반복해서 선언합니다 /
.
따라서 이러한 옵션은 아무 작업도 수행하지 않거나 가장 좋은 경우 <Directory />
마지막 부분만 적용합니다.
https://httpd.apache.org/docs/current/sections.html#merging
이 부분이 가상호스트마다 동일해 보인다면 문제가 되지 않으나, 일부 가상호스트가 다르고, 시간이 지남에 따라 가상호스트의 수가 변하는 경우에는 <Directory />
어떤 지시어가 적용되었는지 판단하기 어려울 수 있다.
모든 가상 호스트에서 해당 섹션을 제거 <Directory />
하고 전역 구성에서 한 번 선언하겠습니다.