Indeks katalogu serwera WWW

Article

July 5, 2022

Gdy klient HTTP (zwykle przeglądarka internetowa) żąda adresu URL, który wskazuje na strukturę katalogów zamiast na rzeczywistą stronę internetową w strukturze katalogów, serwer sieciowy zazwyczaj wyświetla stronę domyślną, która często jest określana jako główna lub „ indeks”. Powszechną nazwą pliku dla takiej strony jest index.html, ale większość nowoczesnych serwerów HTTP oferuje konfigurowalną listę nazw plików, których serwer może używać jako indeksu. Jeśli serwer jest skonfigurowany do obsługi skryptów po stronie serwera, lista będzie zwykle zawierała wpisy pozwalające na użycie dynamicznej zawartości jako strony indeksowej (np. index.cgi, index.pl, index.php, index.shtml, index.jsp, default.asp), nawet jeśli bardziej odpowiednie może być nadal określanie danych wyjściowych HTML (index.html.php lub index.html.aspx), ponieważ nie należy tego brać za pewnik. Przykładem jest popularny serwer WWW typu open source Apache, w którym lista nazw plików jest kontrolowana przez dyrektywę DirectoryIndex w głównym pliku konfiguracyjnym serwera lub w pliku konfiguracyjnym dla tego katalogu. Możliwe jest w ogóle nie używanie rozszerzeń plików i zachowanie neutralności wobec metod dostarczania treści oraz ustawienie serwera tak, aby automatycznie wybierał najlepszy plik poprzez negocjowanie treści. Jeśli serwer nie może znaleźć pliku o żadnej z nazw wymienionych w jego konfiguracji, może zwrócić błąd (zwykle 403 Index Listing Forbidden lub 404 Not Found) lub wygenerować własną stronę indeksu z listą plików w katalogu. Zwykle ta opcja, często nazywana autoindeksem, jest również konfigurowalna.

Historia

Schemat, w którym serwer WWW obsługuje domyślny plik na podstawie podkatalogu, był obsługiwany już od NCSA HTTPd 0.3beta (22 kwietnia 1993), który domyślnie obsługuje plik index.html w katalogu. Schemat ten został następnie przyjęty przez CERN HTTPd od co najmniej 2.17beta (5 kwietnia 1994), którego domyślnie obsługuje Welcome.html i welcome.html oprócz pochodzącego z NCSA index.html. Późniejsze serwery internetowe zazwyczaj obsługują ten domyślny schemat plików w takiej czy innej formie; jest to zwykle konfigurowalne, przy czym index.html jest jedną z domyślnych nazw plików.

Wdrożenie

W niektórych przypadkach strona główna witryny może być menu opcji językowych dla dużych witryn korzystających z kierowania geograficznego. Możliwe jest również uniknięcie tego kroku, np. poprzez negocjowanie treści. W przypadkach, gdy w danym katalogu nie istnieje żaden znany plik index.*, serwer sieciowy można skonfigurować tak, aby zamiast tego udostępniał automatycznie generowaną listę plików w tym katalogu. Na przykład w przypadku serwera WWW Apache to zachowanie jest zapewniane przez moduł mod_autoindex i kontrolowane przez dyrektywę Options +Indexes w plikach konfiguracyjnych serwera WWW. Te automatyczne wykazy katalogów stanowią czasami zagrożenie bezpieczeństwa, ponieważ wyliczają poufne pliki, które mogą nie być przeznaczone do publicznego dostępu w procesie znanym jako atak indeksowania katalogów. Taka błędna konfiguracja zabezpieczeń może również pomóc w innych atakach, takich jak atak polegający na przechodzeniu ścieżki lub przechodzeniu przez katalog.

Przedstawienia

Podczas uzyskiwania dostępu do katalogu różne dostępne metody indeksowania mogą również mieć różny wpływ na wykorzystanie zasobów systemu operacyjnego (pamięci RAM, czas procesora itp.), a tym samym na wydajność serwera WWW. Przechodząc od najszybszej do najwolniejszej metody, oto lista: za pomocą statycznego pliku indeksowego, np.: index.html itp.; używanie funkcji serwera WWW, zwykle nazywanej autoindex (gdy nie istnieje plik indeksu), aby umożliwić serwerowi WWW automatyczne generowanie listy katalogów przy użyciu jego wewnętrznego modułu; za pomocą zinterpretowanego pliku odczytanego przez wewnętrzny interpreter programu serwera WWW, np.: index.php; za pomocą wykonywalnego i skompilowanego programu CGI, np.: index.cgi.

Referencje