웹 서버 디렉토리 색인

Article

July 4, 2022

HTTP 클라이언트(일반적으로 웹 브라우저)가 디렉토리 구조 내의 실제 웹 페이지 대신 디렉토리 구조를 가리키는 URL을 요청할 때 웹 서버는 일반적으로 기본 페이지를 제공합니다. 색인' 페이지. 이러한 페이지의 일반적인 파일 이름은 index.html이지만 대부분의 최신 HTTP 서버는 서버가 인덱스로 사용할 수 있는 구성 가능한 파일 이름 목록을 제공합니다. 서버가 서버 측 스크립팅을 지원하도록 구성된 경우 목록에는 일반적으로 동적 콘텐츠를 인덱스 페이지로 사용할 수 있는 항목이 포함됩니다(예: index.cgi, index.pl, index.php, index.shtml, index.jsp, default.asp) HTML 출력(index.html.php 또는 index.html.aspx)을 지정하는 것이 더 적절할 수 있지만 이를 당연시해서는 안 됩니다. 예를 들어 널리 사용되는 오픈 소스 웹 서버 Apache가 있으며, 여기서 파일 이름 목록은 기본 서버 구성 파일 또는 해당 디렉토리에 대한 구성 파일의 DirectoryIndex 지시문에 의해 제어됩니다. 파일 확장자를 전혀 사용하지 않고 콘텐츠 전달 방식에 중립적이며 콘텐츠 협상을 통해 최적의 파일을 자동으로 선택하도록 서버를 설정할 수 있습니다. 서버가 구성에 나열된 이름을 가진 파일을 찾을 수 없으면 오류(일반적으로 403 Index Listing Forbidden 또는 404 Not Found)를 반환하거나 디렉토리에 있는 파일을 나열하는 자체 색인 페이지를 생성할 수 있습니다. 일반적으로 autoindex라고 하는 이 옵션도 구성할 수 있습니다.

역사

웹 서버가 서브디렉토리별로 기본 파일을 제공하는 방식은 NCSA HTTPd 0.3beta(1993년 4월 22일)부터 지원되었으며 기본적으로 디렉토리에서 index.html 파일을 제공합니다. 이 체계는 최소한 2.17beta(1994년 4월 5일) 이후 CERN HTTPd에 의해 채택되었으며, 기본값은 NCSA에서 생성한 index.html 외에 Welcome.html 및 welcome.html을 지원합니다. 후기 웹 서버는 일반적으로 이 기본 파일 체계를 지원합니다. 어떤 형태로든; 이것은 일반적으로 구성할 수 있으며 index.html은 기본 파일 이름 중 하나입니다.

구현

어떤 경우에는 웹사이트의 홈 페이지가 지역 타겟팅을 사용하는 대규모 사이트의 언어 옵션 메뉴가 될 수 있습니다. 예를 들어 콘텐츠 협상을 사용하여 이 단계를 피할 수도 있습니다. 지정된 디렉토리 내에 알려진 index.* 파일이 없는 경우 웹 서버는 대신 디렉토리 내에서 자동으로 생성된 파일 목록을 제공하도록 구성될 수 있습니다. 예를 들어 Apache 웹 서버에서 이 동작은 mod_autoindex 모듈에 의해 제공되고 웹 서버 구성 파일의 Options +Indexes 지시문에 의해 제어됩니다. 이러한 자동화된 디렉토리 목록은 디렉토리 인덱싱 공격으로 알려진 프로세스에서 공개 액세스를 의도하지 않을 수 있는 민감한 파일을 열거하기 때문에 때때로 보안 위험이 됩니다. 이러한 잘못된 보안 구성은 경로 또는 디렉터리 탐색 공격과 같은 다른 공격에도 도움이 될 수 있습니다.

공연

디렉토리에 액세스할 때 사용 가능한 다양한 인덱스 방법도 OS 리소스(RAM, CPU 시간 등) 사용 및 웹 서버 성능에 다른 영향을 미칠 수 있습니다. 가장 빠른 방법부터 가장 느린 방법 순으로 나열하면 다음과 같습니다. 정적 인덱스 파일 사용, 예: index.html 등 일반적으로 autoindex라는 웹 서버 기능을 사용하여(인덱스 파일이 없는 경우) 웹 서버가 내부 모듈을 사용하여 디렉토리 목록을 자동 생성하도록 합니다. 웹 서버 내부 프로그램 인터프리터가 읽은 해석된 파일 사용, 예: index.php; CGI 실행 가능 및 컴파일된 프로그램 사용, 예: index.cgi.

참조