Narzędzie Fiddler - część I

Fiddler to popularne narzędzie do monitorowania i modyfikowania ruchu sieciowego. Przedstawiamy praktyczne wprowadzenie do narzędzia.

 

Zanim przystąpimy do śledzenia ruchu sieciowego za pomocą Fiddlera warto przyjrzeć się, jak wygląda komunikacja między przeglądarką a serwerem. Komunikacja między przeglądarką a serwerem odbywa się za pomocą protokołów, są to ustalone schematy wiadomości.

Najpopularniejsze z nich to HTTP, HTTPS, FTP:

  • HTPP (Hyper Text Transfer Protocol) –  za pomocą protokou HTTP przesyła się żądanie udostępnienia dokumentów WWW, można też przesyłać informacje z formularzy;
  • HTTPS (Hyper Text Transfer Protocol Security) – szyfrowana wersja protokołu HTTP - to za jego pomocą logujemy się do kont bankowych;
  • FTP (File Transfer Protocol) – protokół transferu plików.

 

Najbardziej popularny w codziennej komunikacji jest protokół HTTP. Po wpisaniu adresu w przeglądarce wysyłane jest zapytanie HTTP (request) do serwera, od serwera otrzymujemy odpowiedź HTTP (response).

Zapytanie wysyłane przez przeglądarkę zbudowane jest z nagłówka (header) i ciała (body), które nie zawsze musi występować (może być puste). W nagłówku zapytania przesyłane są m.in. metody, które określają, jakie działania mają być wykonane w komunikacji między przeglądarką a serwerem. Warto wspomnieć o najważniejszych metodach:

GET – służy do pobierania zawartości, wyświetlania strony. Dane przekazane za pomocą tej metody są przekazywane w adresie.

POST – metoda przesyłania danych. Za jej pomocą często przesyłane są dane na formularzach.

 

Fiddler - narzędzie do debugowania sieci

Fiddler to narzędzie, które pozwala na monitorowanie oraz modyfikowanie ruchu HTTP/HTTPS pomiędzy komputerem a witrynami i aplikacjami webowymi. Po wysłaniu zapytania przez przeglądarkę zapytanie ląduje w Fiddlerze. Następnie program przesyła je dalej do docelowego serwera, od którego otrzymuje odpowiedź. Odpowiedź przesyła do przeglądarki. Fiddler działa więc jako lokalne proxy.

Program pobieramy i instalujemy na dysku ze strony: https://www.telerik.com/download/fiddler

 

Praca z fiddlerem – obserwowanie ruchu sieciowego

Po zainstalowaniu możemy obserwować ruch z sieci, który używa protokołu HTTP. Aby przechwycić połączenia HTTPS musimy włączyć ustawienia w programie. W tym celu wybieramy: "Tools" > "Telerik Fiddler Options" > "HTTPS" > zaznaczamy "Capture HTTPS CONNECTs" i "Decrypt HTTPS traffic".

Aby rozszyfrować HTTPS Fiddler generuje certyfikat, który instalujemy na komputerze.

Do generewania ruchu sieciowego na potrzeby artykułu użyjemy przeglądarki Google Chrome i strony: http://automationpractice.com/index.php.

 

Filtrowanie wyników

Zanim zaczniemy obserwacje ruchu sieciowego warto ustawić sobie filtry, aby pokazywane były połączenia tylko z interesującej nas strony. Inaczej Fiddler będzie pokazywał cały ruch z sieci, co utrudni przeglądanie wyników.

Aby wyfiltrować połączenia z interesującej nas witryny wybieramy "Filters" w prawej części pulpitu.

 

 

W zakładce tej mamy możliwość filtrowania po wielu opcjach. Zaznaczamy checkbox "Use Filtres".

W obszarze "Hosts" wybieramy z listy rozwijalnej "Show only the following Hosts" i wpisujemy: "automationpractice.com".

 

Obserwowanie wyników

By podejrzeć ruch w przeglądarce przechodzimy na stronę: http://automationpractice.com/index.php

W Fiddlerze po lewej stronie mamy okno gdzie prezentowane są wyniki.

 

 

Pojedyncze zapytanie (request) i odpowiedź (response) w Fiddlerze nazywane jest sesją. Aby zobaczyć request i response zaznaczamy pojedynczą sesję i wybieramy zakładkę "Inspectors".

 

Za pomocą zakładki "Statistics" możemy zobaczyć statystyki dotyczące pojedynczej lub kilku sesji. W zakładce "Timeline" zobczymy, ile czasu trawało pojedyczne zapytanie. 

Dla sesji dostępnych jest wiele opcji, takich jak:

  • ponowne wysyłanie zapytań - możemy ponownie wysłać zapytanie, zaznaczając jedną lub kilka sesji naraz. By to wykonać wybieramy prawy klawisz myszy i z dostępnych opcji wybieramy "Replay". Do wyboru mamy znowu kilka opcji. Możemy też zaznaczyć kilka sesji i zaznaczyć Shift+R, następnie wpisać, ile razy chcemy powtórzyć wybrane sesje;
  • zapisywanie sesji  - sesje możemy zapisać. Jest możliwość zapisania też pojedynczego requesta i responsa;
  • porównywanie sesji - jeżeli mamy narzędzie do porównywania plików WinMerge albo WinDiff, możemy porównać dwie sesje.

 

Narzędzie WinMerge możemy zainstalować ze strony: http://winmerge.org/downloads/?lang=pl

Aby porównać sesje w Fiddlerze zaznaczamy dwie sesje (Shift + lewy klawisz myszki) i wybieramy "Tools" > "Compare session". Pojawia się okno z zaznaczonymi na żółto różnicami między sesjami.

 

 

 

Przydatne linki:

  1. http://www.telerik.com/fiddler - oficjalna strona Fiddlera; znajdziemy na niej dodatki oraz pomoce w postaci dokumentacji i filmów
  2. http://kobietydokodu.pl/niezbednik-juniora-protokol-http/ - bardziej szczegółowy opis, jak działa komunikacja między przeglądarką a serwerem
  3. https://pl.wikipedia.org/wiki/Hypertext_Transfer_Protocol - omówienie protokołu HTTP
  4. http://threats.pl/bezpieczenstwo-aplikacji-internetowych/absolutne-podstawy - tutorial z bezpieczeńswa aplikacji internetowych z wykorzystaniem Fiddlera
  5. http://testerzy.pl/narzedzia/fiddler-web-debugger - nasz opis narzędzia.

 

W drugiej części artykułu przedstawimy, jak modyfikować zapytania generowane z przeglądarki i odpowiedzi, które otrzymujemy od serwera.

 

 

 

Najbliższe terminy szkoleń

Partnerzy

Narzędzia testerskie