Webサーバーディレクトリインデックス

Article

July 5, 2022

HTTPクライアント(通常はWebブラウザ)がディレクトリ構造内の実際のWebページではなくディレクトリ構造を指すURLを要求すると、Webサーバーは通常、デフォルトページを提供します。これは、メインまたは「」と呼ばれることがよくあります。インデックス」ページ。 このようなページの一般的なファイル名はindex.htmlですが、最近のほとんどのHTTPサーバーは、サーバーがインデックスとして使用できるファイル名の構成可能なリストを提供しています。サーバーがサーバー側スクリプトをサポートするように構成されている場合、リストには通常、動的コンテンツをインデックスページとして使用できるようにするエントリが含まれます(例:index.cgi、index.pl、index.php、index.shtml、index.jsp、 default.asp)HTML出力(index.html.phpまたはindex.html.aspx)を指定する方が適切な場合でも、これは当然のことと見なされるべきではありません。例として、人気のあるオープンソースWebサーバーApacheがあります。この場合、ファイル名のリストは、メインサーバー構成ファイルまたはそのディレクトリの構成ファイルのDirectoryIndexディレクティブによって制御されます。ファイル拡張子をまったく使用せず、コンテンツ配信方法に中立であり、コンテンツネゴシエーションを通じて自動的に最適なファイルを選択するようにサーバーを設定することができます。 サーバーが構成にリストされている名前のファイルを見つけることができない場合、サーバーはエラー(通常、403 IndexListingForbiddenまたは404NotFound)を返すか、ディレクトリ内のファイルをリストする独自のインデックスページを生成します。通常、このオプションは、しばしばautoindexと呼ばれ、構成可能です。 歴史 Webサーバーがサブディレクトリごとにデフォルトファイルを提供するスキームは、NCSA HTTPd 0.3beta(1993年4月22日)でサポートされており、デフォルトでディレクトリ内のindex.htmlファイルを提供します。このスキームは、少なくとも2.17beta(1994年4月5日)以降、CERN HTTPdによって採用されています。デフォルトでは、NCSAから作成されたindex.htmlに加えてWelcome.htmlとwelcome.htmlがサポートされます。後のWebサーバーは通常、このデフォルトのファイルスキームをサポートします。何らかの形で;これは通常構成可能であり、index.htmlがデフォルトのファイル名の1つです。 実装 場合によっては、Webサイトのホームページは、ジオターゲティングを使用する大規模なサイトの言語オプションのメニューになることがあります。たとえば、コンテンツネゴシエーションを使用することで、この手順を回避することもできます。 特定のディレクトリ内に既知のindex。*ファイルが存在しない場合、代わりにディレクトリ内のファイルの自動生成リストを提供するようにWebサーバーを構成できます。たとえば、Apache Webサーバーの場合、この動作はmod_autoindexモジュールによって提供され、Webサーバー構成ファイルのOptions+Indexesディレクティブによって制御されます。これらの自動ディレクトリリストは、ディレクトリインデックス攻撃と呼ばれるプロセスで、パブリックアクセスを目的としていない可能性のある機密ファイルを列挙するため、セキュリティリスクになる場合があります。このようなセキュリティの設定ミスは、パスやディレクトリトラバーサル攻撃などの他の攻撃にも役立つ可能性があります。 パフォーマンス ディレクトリにアクセスする場合、使用可能なさまざまなインデックス方式は、OSリソースの使用量(RAM、CPU時間など)、したがってWebサーバーのパフォーマンスにも異なる影響を与える可能性があります。 最も速い方法から最も遅い方法に進むと、ここにリストがあります: 静的インデックスファイルを使用します。例:index.htmlなど。 通常autoindexという名前のWebサーバー機能(インデックスファイルが存在しない場合)を使用して、Webサーバーが内部モジュールを使用してディレクトリリストを自動生成できるようにします。 Webサーバーの内部プログラムインタープリターによって読み取られた解釈済みファイルを使用します(例:index.php)。 CGI実行可能ファイルとコンパイル済みプログラムを使用します(例:index.cgi)。 参照