Testowanie bezpieczeństwa - podstawy protokołu HTTP
Zrozumienie protokołu jest bardzo ważne, aby dobrze zrozumieć testy bezpieczeństwa. Będziesz mógł docenić znaczenie protokołu, gdy przechwytujemy dane pakietowe między serwerem internetowym a klientem.
Protokół HTTP
Hypertext Transfer Protocol (HTTP) to protokół na poziomie aplikacji dla rozproszonych, współpracujących systemów informacyjnych hipermedialnych. Jest to podstawa komunikacji danych w sieci World Wide Web od 1990 roku. HTTP to ogólny i bezstanowy protokół, który może być używany do innych celów, a także z wykorzystaniem rozszerzeń metod żądań, kodów błędów i nagłówków.
Zasadniczo HTTP jest protokołem komunikacyjnym opartym na TCP / IP, który służy do dostarczania danych, takich jak pliki HTML, pliki obrazów, wyniki zapytań itp. Przez Internet. Zapewnia ustandaryzowany sposób komunikacji między komputerami. Specyfikacja HTTP określa, w jaki sposób żądane dane klientów są wysyłane do serwera i jak serwery odpowiadają na te żądania.
Podstawowe funkcje
Istnieją trzy podstawowe funkcje, które sprawiają, że HTTP jest prostym, ale wydajnym protokołem -
HTTP is connectionless- Klient HTTP, tj. Przeglądarka inicjuje żądanie HTTP. Po zgłoszeniu żądania klient odłącza się od serwera i czeka na odpowiedź. Serwer przetwarza żądanie i ponownie nawiązuje połączenie z klientem, aby odesłać odpowiedź.
HTTP is media independent- Przez HTTP można przesyłać dowolne typy danych, o ile zarówno klient, jak i serwer wiedzą, jak postępować z zawartością danych. Jest to wymagane dla klienta i serwera, aby określić typ zawartości przy użyciu odpowiedniego typu MIME.
HTTP is stateless- HTTP jest protokołem bezpołączeniowym i jest bezpośrednim wynikiem tego, że HTTP jest protokołem bezstanowym. Serwer i klient znają się nawzajem tylko podczas bieżącego żądania. Potem oboje zapominają o sobie. Ze względu na ten charakter protokołu ani klient, ani przeglądarka nie mogą zachować informacji między różnymi żądaniami na stronach internetowych.
Protokół HTTP / 1.0 używa nowego połączenia dla każdej wymiany żądanie / odpowiedź, podczas gdy połączenie HTTP / 1.1 może być używane do jednej lub większej liczby wymian żądanie / odpowiedź.
Architektura
Poniższy diagram przedstawia bardzo podstawową architekturę aplikacji internetowej i pokazuje, gdzie znajduje się HTTP -
Protokół HTTP jest protokołem żądanie / odpowiedź opartym na architekturze klient / serwer, w którym przeglądarka internetowa, roboty i wyszukiwarki itp. Działają jako klienci HTTP, a serwer sieciowy działa jako serwer.
Client - Klient HTTP wysyła żądanie do serwera w postaci metody żądania, identyfikatora URI i wersji protokołu, po którym następuje komunikat podobny do MIME, zawierający modyfikatory żądania, informacje o kliencie i możliwą zawartość treści przez połączenie TCP / IP.
Server - Serwer HTTP odpowiada wierszem stanu, zawierającym wersję protokołu komunikatu oraz kod powodzenia lub błędu, po którym następuje komunikat podobny do MIME, zawierający informacje o serwerze, metadane encji i możliwą treść treści encji.
HTTP - wady
HTTP nie jest w pełni zabezpieczonym protokołem.
HTTP używa portu 80 jako domyślnego portu do komunikacji.
HTTP działa w warstwie aplikacji. Musi utworzyć wiele połączeń do przesyłania danych, co zwiększa koszty administracyjne.
Do korzystania z protokołu HTTP nie są wymagane żadne certyfikaty szyfrowania / cyfrowe.
Szczegóły protokołu HTTP
Aby dokładnie zrozumieć protokół HTTP, kliknij każde z poniższych łączy.
HTTP Parameters
HTTP Messages
HTTP Requests
HTTP Responses
HTTP Methods
HTTP Status Codes
HTTP Header Fields
HTTP Security