좋은 보안 방법은 가상 호스트의 모든 것을 아무것도 허용하지 않도록 재설정한 다음 특정 액세스를 허용하는 또 다른 지시어를 갖는 것이라고 들었습니다. 다음과 같습니다.
<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 />
하고 전역 구성에서 한 번 선언하겠습니다.