
Apache로 사이트를 제공할 때 "servername/foo"에 일부 콘텐츠를 배치하는 방법에는 두 가지가 있습니다.
- 'foo'라는 폴더 아래의 웹 루트에 넣습니다.
- 별칭 만들기
#2의 예로서 XAMPP의 구성 파일에는 다음 명령문이 있습니다.
Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
...이는 "서버가 localhost이고 누군가가 localhost/phpmyadmin을 방문하는 경우 C:/xampp/phpMyAdmin의 내용을 보여줍니다.다음 권한."
이 예에서는 동일한 URL에서 phpMyAdmin에 액세스할 수 있으므로웹 루트 폴더에 있는지 아니면 그냥 그런 것처럼 보이도록 별칭을 지정했는지가 보안 관점에서 중요합니까?
답변1
"일반"(정적) Apache의 경우 및 예를 엄격한 1:1 시나리오로 좁히면: 아니요, 중요하지 않습니다. 가정적으로, 어떤 권한이 어디서 상속되는지 추적하지 못하고 섞고 으깨면 의도하지 않은 내용이 노출될 수도 있습니다.
가장 중요한 것은 웹 서버 및 문서 루트에 사용하는 것보다 별도의 사용자가 고유한 코드 분기를 소유(따라서 기록)하는 것을 더 쉽게 만든다고 생각합니다. 이는 안정적인 패키징을 위해 필요하며, 안정적인 패키징은 장기적인 보안의 핵심 부분입니다.
또한 아파치 모듈은 꽤 유연할 수 있다는 점을 명심하세요. 따라서 핵심 Apache 항목은 다르게 동작하지 않지만 타사 인증 모듈이나 심지어 open_basedir 및 include_path와 같은 PHP 설정도 동작을 변경할 수 있습니다.
답변2
아니요.
Directory 문은 DIRECTORY에 적용됩니다. 이 디렉토리가 시스템의 어디에 존재하는지는 중요하지 않습니다.
질문의 들여쓰기는 실제로 존재하지 않는 별칭과 디렉토리 줄 사이의 일종의 관계를 의미합니다.