Index adresáře webového serveru

Article

August 18, 2022

Když klient HTTP (obvykle webový prohlížeč) požaduje adresu URL, která ukazuje na adresářovou strukturu namísto skutečné webové stránky v adresářové struktuře, webový server obecně zobrazí výchozí stránku, která se často nazývá hlavní nebo „ stránka indexu. Běžný název souboru pro takovou stránku je index.html, ale většina moderních serverů HTTP nabízí konfigurovatelný seznam názvů souborů, které může server použít jako index. Pokud je server nakonfigurován pro podporu skriptování na straně serveru, bude seznam obvykle obsahovat položky umožňující použití dynamického obsahu jako stránky indexu (např. index.cgi, index.pl, index.php, index.shtml, index.jsp, default.asp), i když může být vhodnější specifikovat výstup HTML (index.html.php nebo index.html.aspx), protože by to nemělo být považováno za samozřejmost. Příkladem je populární open source webový server Apache, kde je seznam názvů souborů řízen direktivou DirectoryIndex v hlavním konfiguračním souboru serveru nebo v konfiguračním souboru pro tento adresář. Je možné nepoužívat přípony souborů vůbec a být neutrální vůči metodám doručování obsahu a nastavit server tak, aby automaticky vybral nejlepší soubor prostřednictvím vyjednávání obsahu. Pokud server nemůže najít soubor s některým z jmen uvedených v jeho konfiguraci, může buď vrátit chybu (obvykle 403 Index Listing Forbidden nebo 404 Not Found) nebo vygenerovat vlastní indexovou stránku se seznamem souborů v adresáři. Obvykle je tato možnost, často nazývaná autoindex, také konfigurovatelná.

Historie

Schéma, kde webový server obsluhuje výchozí soubor na základě jednotlivých podadresářů, bylo podporováno již ve verzi NCSA HTTPd 0.3beta (22. dubna 1993), která ve výchozím nastavení poskytuje soubor index.html v adresáři. Toto schéma bylo poté přijato CERN HTTPd minimálně od 2.17beta (5. dubna 1994), jehož výchozí nastavení podporuje Welcome.html a welcome.html kromě indexu.html pocházejícího z NCSA. Pozdější webové servery obvykle podporují toto výchozí souborové schéma v té či oné formě; toto je obvykle konfigurovatelné, přičemž index.html je jedním z výchozích názvů souborů.

Realizace

V některých případech může být domovskou stránkou webu nabídka jazykových možností pro velké weby, které používají geografické cílení. Tomuto kroku je také možné se vyhnout například pomocí vyjednávání obsahu. V případech, kdy v daném adresáři neexistuje žádný známý soubor index.*, může být webový server nakonfigurován tak, aby místo toho poskytoval automaticky generovaný seznam souborů v adresáři. Například u webového serveru Apache je toto chování zajištěno modulem mod_autoindex a řízeno direktivou Options +Indexes v konfiguračních souborech webového serveru. Tyto automatizované výpisy adresářů jsou někdy bezpečnostním rizikem, protože obsahují výčet citlivých souborů, které nemusí být určeny pro veřejný přístup, v procesu známém jako útok na indexování adresářů. Taková chybná konfigurace zabezpečení může také pomoci při jiných útocích, jako je útok typu cesta nebo adresář.

Představení

Při přístupu k adresáři mohou mít různé dostupné metody indexování také různý dopad na využití prostředků operačního systému (RAM, čas CPU atd.) a tím i na výkon webového serveru. Postup od nejrychlejší k nejpomalejší metodě, zde je seznam: pomocí statického indexového souboru, např.: index.html atd.; použití funkce webového serveru, která se obvykle nazývá autoindex (pokud neexistuje žádný indexový soubor), aby webový server mohl automaticky generovat výpis adresářů pomocí svého interního modulu; pomocí interpretovaného souboru načteného interním programovým interpretem webového serveru, např.: index.php; pomocí spustitelného a zkompilovaného programu CGI, např.: index.cgi.

Reference