HTTP - bezpieczeństwo
Protokół HTTP jest używany do komunikacji przez Internet, dlatego twórcy aplikacji, dostawcy informacji i użytkownicy powinni zdawać sobie sprawę z ograniczeń bezpieczeństwa w protokole HTTP / 1.1. Ta dyskusja nie zawiera ostatecznych rozwiązań wspomnianych tutaj problemów, ale zawiera pewne sugestie dotyczące zmniejszenia zagrożeń bezpieczeństwa.
Wyciek danych osobowych
Klienci HTTP często mają dostęp do dużej ilości danych osobowych, takich jak nazwa użytkownika, lokalizacja, adres e-mail, hasła, klucze szyfrujące itp. Dlatego należy bardzo uważać, aby zapobiec niezamierzonemu wyciekowi tych informacji za pośrednictwem protokołu HTTP do innych źródeł.
Wszystkie poufne informacje powinny być przechowywane na serwerze w postaci zaszyfrowanej.
Ujawnienie konkretnej wersji oprogramowania serwera może zwiększyć podatność maszyny serwera na ataki na oprogramowanie, o którym wiadomo, że zawiera luki w zabezpieczeniach.
Serwery proxy, które służą jako portal przez zaporę sieciową, powinny zachować szczególne środki ostrożności dotyczące przesyłania informacji nagłówka, które identyfikują hosty za zaporą.
Informacje przesyłane w polu „Od” mogą być sprzeczne z interesami prywatności użytkownika lub polityką bezpieczeństwa jego witryny, a zatem nie powinny być przesyłane bez możliwości wyłączenia, włączenia i zmodyfikowania zawartości pola przez użytkownika.
Klienci nie powinni umieszczać pola nagłówka Referer w (niezabezpieczonym) żądaniu HTTP, jeśli strona odsyłająca została przesłana za pomocą bezpiecznego protokołu.
Autorzy serwisów korzystających z protokołu HTTP nie powinni używać formularzy opartych na GET do przesyłania danych wrażliwych, ponieważ spowoduje to zakodowanie danych w Request-URI.
Atak oparty na nazwach plików i ścieżek
Dokument należy ograniczyć do dokumentów zwracanych przez żądania HTTP, tak aby były to tylko te, które były zamierzone przez administratorów serwera.
Na przykład UNIX, Microsoft Windows i inne systemy operacyjne używają '..'jako składnik ścieżki wskazujący poziom katalogu powyżej bieżącego. W takim systemie serwer HTTP MUSI zabronić jakiejkolwiek takiej konstrukcji w identyfikatorze URI żądania, jeśli w przeciwnym razie umożliwiałby dostęp do zasobów innych niż te, które mają być dostępne za pośrednictwem serwera HTTP.
DNS Spoofing
Klienci korzystający z protokołu HTTP w dużym stopniu polegają na usłudze nazw domen i dlatego są ogólnie podatni na ataki bezpieczeństwa oparte na umyślnym błędnym skojarzeniu adresów IP i nazw DNS. Dlatego klienci muszą zachować ostrożność, zakładając ciągłą ważność powiązania numeru IP / nazwy DNS.
Jeśli klienci HTTP buforują wyniki wyszukiwania nazw hostów w celu uzyskania poprawy wydajności, muszą obserwować informacje TTL zgłaszane przez DNS. Jeśli klienci HTTP nie przestrzegają tej reguły, mogą zostać sfałszowani, gdy zmieni się adres IP serwera, do którego wcześniej uzyskano dostęp.
Nagłówki lokalizacji i podszywanie się
Jeśli jeden serwer obsługuje wiele organizacji, które nie ufają sobie nawzajem, MUSI on sprawdzić wartości nagłówków Location i Content Location w odpowiedziach generowanych pod kontrolą tych organizacji, aby upewnić się, że nie próbują one unieważniać zasobów których nie mają władzy.
Poświadczenia uwierzytelniające
Istniejący klienci HTTP i agenci użytkownika zazwyczaj zachowują informacje uwierzytelniające przez czas nieokreślony. Protokół HTTP / 1.1 nie zapewnia serwerowi metody nakazującej klientom odrzucenie tych buforowanych poświadczeń, co stanowi duże zagrożenie bezpieczeństwa.
Istnieje wiele sposobów obejścia części tego problemu, dlatego zaleca się korzystanie z ochrony hasłem w wygaszaczach ekranu, limitach czasu bezczynności i innych metodach, które łagodzą problemy związane z bezpieczeństwem związane z tym problemem.
Serwery proxy i buforowanie
Serwery proxy HTTP są typu „man-in-the-middle” i stanowią okazję do ataków typu „man in the middle”. Serwery proxy mają dostęp do informacji związanych z bezpieczeństwem, danych osobowych poszczególnych użytkowników i organizacji oraz informacji zastrzeżonych należących do użytkowników i dostawców treści.
Operatorzy proxy powinni chronić systemy, w których działają serwery proxy, ponieważ chroniliby każdy system, który zawiera lub transportuje poufne informacje.
Serwery proxy buforujące zapewniają dodatkowe potencjalne luki w zabezpieczeniach, ponieważ zawartość pamięci podręcznej stanowi atrakcyjny cel złośliwej eksploatacji. Dlatego zawartość pamięci podręcznej powinna być chroniona jako informacje poufne.