웹 서버 디렉토리 색인

Web server directory index
다국어 온라인 백과사전인 위키피디아 색인 www.wikipedia.org.웹사이트의 홈페이지는 다양한 언어를 제공합니다.

HTTP 클라이언트(일반적으로 웹 브라우저)가 디렉토리 구조 내의 실제 웹 페이지가 아닌 디렉토리 구조를 가리키는 URL을 요구하면 웹 서버는 일반적으로 기본 페이지(일반적으로 메인 페이지 또는 "인덱스" 페이지)를 제공합니다.

이러한 페이지의 일반적인 파일명은 다음과 같습니다.index.html그러나 대부분의 최신 HTTP 서버는 서버에서 인덱스로 사용할 수 있는 설정 가능한 파일 이름 목록을 제공합니다.서버가 서버측의 스크립팅을 서포트하도록 설정되어 있는 경우, 통상, 리스트에는, 인덱스 페이지로서 다이나믹 컨텐츠를 사용할 수 있는 엔트리가 포함됩니다(예를 들면,index.cgi,index.pl,index.php,index.shtml,index.jsp,default.aspHTML 의 출력을 지정하는 것이 적절한 경우도 있습니다만, ( )index.html.php또는index.html.aspx이것은 당연하게 여겨져서는 안 됩니다.를 들어 널리 사용되는 오픈소스 웹 서버 Apache는 파일 이름 목록을DirectoryIndex[1] 메인 서버 컨피규레이션파일 또는 그 디렉토리의 컨피규레이션파일에 디렉티브가 표시됩니다.파일 확장자를 전혀 사용하지 않고 콘텐츠 전송 방식을 중립으로 하여 콘텐츠 네고시에이션을 통해 최적의 파일을 자동으로 선택하도록 서버를 설정할 수 있습니다.

서버가 설정에 기재되어 있는 이름의 파일을 찾을 수 없는 경우, 에러를 반환하거나(통상은 403 Index Listing Forbidden 또는 404 Not Found), 디렉토리내의 파일을 리스트 하는 독자적인 인덱스 페이지를 생성할 수 있습니다.일반적으로 이 옵션(종종 이름이 지정됨)autoindex설정도 가능합니다.[2]

역사

웹 서버가 서브 디렉토리 단위로 디폴트파일을 제공하는 스킴은, NCSA HTTPd 0.3 beta([3]1993년 4월 22일)부터 서포트되고 있습니다.이 스킴은 디폴트로 서비스 되고 있습니다.index.html파일명을 지정합니다.[3][4]이 스킴은 적어도 2.17beta(1994년 4월 5일) 이후 CERN HTTPd에 의해 채택되어 디폴트로 지원되고 있습니다.Welcome.html그리고.welcome.htmlNCSA에서 발신된 것 외에index.html를 클릭합니다.[5]

이후의 웹 서버는 일반적으로 이 기본 파일 방식을 어떤 형식으로든 지원합니다.이것은 보통, 다음과 같이 설정할 수 있습니다.index.html기본 파일 이름 [6][7][8]중 하나가 됩니다.

실행

경우에 따라 웹 사이트의 홈 페이지지오타겟팅을 사용하는 대규모 사이트의 언어 옵션 메뉴가 될 수 있습니다.컨텐츠 네고시에이션을 사용하는 등, 이 순서를 회피할 수도 있습니다.

모르는 경우index.*파일은 지정된 디렉토리 내에 존재하며 대신 디렉토리 내의 파일 목록을 자동으로 생성하도록 웹 서버를 구성할 수 있습니다.예를 들어 Apache 웹 서버의 경우 이 동작은 mod_autoindex 모듈에[9] 의해 제공되며 에 의해 제어됩니다.Options +Indexes디렉티브[10] 지정합니다.이러한 자동 디렉토리 리스트는, 디렉토리 색인화 [11]공격이라고 불리는 프로세스에서, 공개 액세스를 의도하지 않는 기밀 파일을 열거하기 때문에, 시큐러티상의 리스크가 되는 경우가 있습니다.이러한 시큐러티의 잘못된 설정은[12], 패스나 디렉토리 트래버설 [13]공격등의 다른 공격에도 도움이 되는 경우가 있습니다.

퍼포먼스

디렉토리에 액세스 할 때, 사용 가능한 다양한 인덱스 방식은 OS 자원 사용률(RAM, CPU 시간 등)과 웹 서버의 퍼포먼스에 다른 영향을 미칠 수도 있습니다.

가장 빠른 방법에서 가장 느린 방법으로 진행하면 다음과 같습니다.

  • 정적 인덱스 파일을 사용합니다. 예: index.html
  • 일반적으로 autoindex라는 이름의 웹 서버 기능을 사용하여(인덱스 파일이 존재하지 않는 경우) 내부 모듈을 사용하여 웹 서버가 디렉토리 목록을 자동으로 생성할 수 있도록 합니다.
  • 웹 서버 내부 프로그램 인터프리터가 읽은 해석 파일을 사용합니다. 예: index.php;
  • CGI 실행 파일과 컴파일된 프로그램을 사용합니다.예: index.cgi.

레퍼런스

  1. ^ "mod_dir - Apache HTTP Server". httpd.apache.org. Retrieved 2014-05-30.
  2. ^ ASF Infrabot (2019-05-22). "Directory listings". Apache foundation: HTTPd server project. Retrieved 2021-11-16.
  3. ^ a b "WWW-Talk Apr-Jun 1993: NCSA httpd version 0.3". 1997.webhistory.org.
  4. ^ "NCSA HTTPd DirectoryIndex". January 31, 2009. Archived from the original on January 31, 2009.
  5. ^ "Change History of W3C httpd". June 5, 1997. Archived from the original on June 5, 1997.
  6. ^ "mod_dir - Apache HTTP Server Version 2.4 § DirectoryIndex Directive". httpd.apache.org. Archived from the original on 2020-11-12. Retrieved 2021-01-13.
  7. ^ "NGINX Docs Serving Static Content". docs.nginx.com. Archived from the original on 2020-11-11. Retrieved 2021-01-13.
  8. ^ "Default Document <defaultDocument> Microsoft Docs". docs.microsoft.com. Archived from the original on 2020-12-08. Retrieved 2021-01-13.
  9. ^ "mod_autoindex - Apache HTTP Server Version 2.4". httpd.apache.org. Retrieved 2021-01-13.{{cite web}}: CS1 maint :url-status (링크)
  10. ^ "core - Apache HTTP Server Version 2.4 § Options Directive". httpd.apache.org. Retrieved 2021-01-13.{{cite web}}: CS1 maint :url-status (링크)
  11. ^ "IBM Docs". IBM. 2021-03-08. Retrieved 2021-05-07.
  12. ^ "A6:2017-Security Misconfiguration". OWASP. Retrieved 2021-05-07.
  13. ^ "Path Traversal". OWASP. Retrieved 2021-05-07.