Web server directory indexは、
HTTP
クライアント (通常は
Web ブラウザ
) が、ディレクトリ構造?の?際の Web ペ?ジではなく、ディレクトリ構造を指す
URL
を要求すると、
Web サ?バ?
からファイルやメインペ?ジを返すというシステムである。
このようなペ?ジの一般的なファイル名はindex.
html
だが、最近のほとんどのHTTP サ?バ?は、サ?バ?がインデックスとして使用できるファイル名の構成可能なリストを提供する。サ?バ?が
サ?バ?側スクリプト
をサポ?トするように構成されている場合、リストには通常、動的コンテンツをインデックス ペ?ジとして使用できるようにするエントリが含まれる。ただし、index.php、index.asp、index.shtmlなどの言語を明的に指定する方がより適切な場合があるが、指定しなくてもよい。例としては、オ?プン ソ?スWeb サ?バ?
Apache
が?げられる。この場合、ファイル名のリストは、メイン サ?バ?構成ファイルまたは
そのディレクトリの構成ファイル
?のDirectoryIndex
[1]
ディレクティブによって制御される。ファイル?張子をまったく使用せず、コンテンツ配信方法に中立であり、サ?バ?がコンテンツ ネゴシエ?ションを通じて最適なファイルを自動的に選?するように設定することができる。
サ?バ?が構成されている名前のファイルを見つけることができない場合、サ?バ?はエラ?(通常は
403 Index Listing Forbidden
または
404 Not Found
) を返す。もしくは、ディレクトリ?のファイルを構成する?自のインデックス ペ?ジを生成する。通常、autoindexという名前のこのオプションも構成可能である。
[2]
?史
[
編集
]
Web サ?バ?がサブディレクトリごとにデフォルト ファイルを提供するというものは、
NCSA HTTPd
0.3beta (1993 年 4 月 22 日) の時点でサポ?トされて、
[3]
ディレクトリ?のindex.htmlファイルをデフォルトで提供した。
[3]
[4]
これは、少なくとも 2.17beta (1994 年 4 月 5 日) 以降、
CERN HTTPd
によって採用されていた。デフォルトでは、NCSA 由?のindex.htmlに加えて、Welcome.htmlとwelcome.htmlがサポ?トされている。
[5]
後の Web サ?バ?は通常、このデフォルトのファイル スキ?ムを何らかの形でサポ?トする。通常、これは構成可能であり、 index.htmlはデフォルトのファイル名の 1 つである。
[6]
[7]
[8]
??
[
編集
]
場合によっては、ウェブサイトの
ホ?ムペ?ジ
が、ジオタ?ゲティングを使用する大規模なサイトの
言語オプション
のメニュ?になることがある。また、コンテンツ ネゴシエ?ションなどを使用して、この手順を回避することもできる。
特定のディレクトリ?に?知のindex.*ファイルが存在しない場合、代わりにディレクトリ?のファイルの自動生成リストを提供するように Web サ?バ?を構成できる。たとえば、Apache Web サ?バ?では、この動作は mod_autoindex モジュ?ル
[9]
によって提供され、Web サ?バ?
構成ファイル
のOptions +Indexesディレクティブ
[10]
によって制御される。
ただし、これらの自動化された
ディレクトリリスト
は、ディレクトリ インデックス攻?と呼ばれるプロセスで公開アクセスを意?していない可能性がある機密ファイルを列?するために、セキュリティ リスクになる場合がある。
[11]
このようなセキュリティの設定ミス
[12]
は、
ディレクトリ トラバ?サル攻?
などの他の攻?にも役立ってしまう可能性がある。
[13]
性能
[
編集
]
ディレクトリにアクセスする場合、さまざまな使用可能なインデックス メソッドが、OS リソ?ス (
RAM
、
CPU 時間
など) の使用に異なる影響を?え、Web サ?バ?のパフォ?マンスに異なる影響を?える可能性がある。
これを回避する?果のある
方法からあまり?果がない順に?べる。
index.html
などの?的インデックス ファイルを使用する方法。
- 通常は
autoindex
という名前の Web サ?バ?機能を使用して (インデックス ファイルが存在しない場合)、Web サ?バ?が?部モジュ?ルを使用してディレクトリ リストを自動生成できるようにする方法。
- Web サ?バ?の?部プログラム インタ?プリタ?によって?み取られたインタ?プリタ? ファイルを使用する方法(例:
index.php)
。
- CGI ?行可能でコンパイル?みのプログラムを使用する 方法(例:
index.cgi
)。
?考文?
[
編集
]
- ^
“
mod_dir - Apache HTTP Server
”. httpd.apache.org.
2014年5月30日
??。
- ^
ASF Infrabot (2019年5月22日). “
Directory listings
” (英語). Apache foundation: HTTPd server project.
2021年11月16日
??。
- ^
a
b
“
WWW-Talk Apr-Jun 1993: NCSA httpd version 0.3
”.
1997.webhistory.org
.
Template:Cite web
の呼び出しエラ?:引?
accessdate
は必須です。
- ^
“
NCSA HTTPd DirectoryIndex
” (2009年1月31日). 2009年1月31日時点の
オリジナル
よりア?カイブ。
Template:Cite web
の呼び出しエラ?:引?
accessdate
は必須です。
- ^
“
Change History of W3C httpd
” (1997年6月5日). 1997年6月5日時点の
オリジナル
よりア?カイブ。
Template:Cite web
の呼び出しエラ?:引?
accessdate
は必須です。
- ^
“
mod_dir - Apache HTTP Server Version 2.4 § DirectoryIndex Directive
”.
httpd.apache.org
. 2020年11月12日時点の
オリジナル
よりア?カイブ。
2021年1月13日
??。
- ^
“
NGINX Docs | Serving Static Content
”.
docs.nginx.com
. 2020年11月11日時点の
オリジナル
よりア?カイブ。
2021年1月13日
??。
- ^
“
Default Document <defaultDocument> | Microsoft Docs
”.
docs.microsoft.com
. 2020年12月8日時点の
オリジナル
よりア?カイブ。
2021年1月13日
??。
- ^
“
mod_autoindex - Apache HTTP Server Version 2.4
”.
httpd.apache.org
.
2021年1月13日
??。
- ^
“
core - Apache HTTP Server Version 2.4 § Options Directive
”.
httpd.apache.org
.
2021年1月13日
??。
- ^
“
IBM Docs
”.
IBM
(2021年3月8日).
2021年5月7日
??。
- ^
“
A6:2017-Security Misconfiguration
”.
OWASP
.
2021年5月7日
??。
- ^
“
Path Traversal
”.
OWASP
.
2021年5月7日
??。