Rozszerzenia HTTP

W poprzednim podrozdziale omówiliśmy zagrożenia serwera HTTP, który przetwarza tylko podstawowy protokół HTTP, i stwierdziliśmy, że są względnie niewielkie. Wydaje się to sprzeczne z łatwo zauważalnym faktem, że witryny WWW padają ofiarą częstych i mocno nagłośnionych włamań. Problem polega na tym, że prawie nikt nie używa serwerów HTTP bez rozszerzeń. Niemal wszystkie serwery HTTP korzystają w znacznym stopniu z zewnętrznych programów i dodatkowych protokołów (niegdyś dodatkowe protokoły były zawsze realizowane na zewnątrz serwera WWW, ale ze względów wydajnościowych obecnie często wbudowuje się je w serwer).

Rozszerzenia zapewniają wiele różnorodnych możliwości: rozszerzenia autorskie umożliwiają ludziom dodawanie i zmienianie stron WWW za pomocą przeglądarki, rozszerzenia formularzowe pozwalają składać zamówienia na produkty, rozszerzenia bazodanowe sprawdzają aktualny stan rzeczy, rozszerzenia dynamiczne zmieniają wygląd strony w zależności od tego, kto ją ogląda. Wszystko, co robi serwer WWW z wyjątkiem zwracania niezmienionych plików danych wymaga rozszerzenia podstawowych funkcji serwera.

Te dodatki radykalnie zmieniają perspektywę bezpieczeństwa. Zamiast realizować tylko bardzo ograniczone interakcje, pozwalają na mnóstwo groźnych czynności (na przykład na zapisywanie danych w serwerze). Co więcej, wiele rozszerzeń nie jest prostymi, jednofunkcyjnymi modułami są to języki ogólnego przeznaczenia, które pozwalają ci na kopanie dołków pod samym sobą. Oznacza to, że bezpieczeństwo serwera WWW nie zależy od samego serwera, który jak masz prawo zakładać został napisany przez ludzi wiedzących co nieco o bezpieczeństwie i stosujących odpowiednie procedury projektowe oraz diagnostyczne, ale także od wszystkich dodatkowych programów, które mogły być napisane w kilka minut przez nowicjuszy w ogóle nie troszczących się o bezpieczeństwo.

Jeśli nawet nie instalujesz napisanych lokalnie programów, komercyjne rozszerzenia serwerów WWW mają długą i mroczną historię problemów z bezpieczeństwem. Dość łatwo napisać bezpieczny program, który nie musi nigdy zapisywać danych. Trudno napisać bezpieczny program, który pozwala użytkownikowi na modyfikowanie danych robi się jeszcze trudniej, jeśli użytkownik posługuje się danymi

o znacznej wartości (na przykład wtedy, gdy piszesz aplikację do obsługi handlu elektronicznego, która używa danych mających rzeczywisty wpływ na towary i pieniądze). Jeśli próbujesz zapewnić maksimum elastyczności, trudno oszacować bezpieczeństwo aplikacji.

One comment to Rozszerzenia HTTP

  • Benek  says:

    Dobre jest to, ze obecnie w przelgadarkach (nie mylic z wyszukiwarkami) mozna wpisywac strony bez http, program je sam doda automatycznie

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>