2013-02-27 14 views
8

Natknąłem się na coś, co mnie zaintrygowało przez ostatnie 3 godziny w związku z procedurą logowania na Facebooku.Jak Facebook wykonuje te przekierowania?

Odwiedziłem http://m.facebook.com (z UO Spoofer zainstalowany i ustawiony na Nokia Lumia User-Agent) i przystąpiłem do logowania podczas monitorowania nagłówków. Celowo wprowadziłem złe hasło dla posiadanego konta.

Po naciśnięciu przycisku logowania wysyła żądanie POST do tego adresu URL: https://m.facebook.com/login.php?refsrc=http%3A%2F%2Fwww.facebook.com%2F&refid=8 kod stanu zwraca kod odpowiedzi 200.

Wtedy natychmiast potem robi żądanie GET do tego URL: http://m.facebook.com/login.php?refsrc=http%3A%2F%2Fwww.facebook.com%2F&refid=8&e=1348022&email=frankthebutcher%40hotmail.com&signup_layout=layout%7Cbottom_clean%7C%7Cwider_form%7C%7Cprmnt_btn%7Cspecial%7C%7Cst%7Ccreate%7C%7Cheader_button%7C%7Chdbtn_color%7Cgreen%7C%7CFeb1&li=jFMuUdDWbmFhq8b-zAjEOHnE&_rdr

który jest URL, który mówi, że hasło jest nieprawidłowe.

Ale skąd pochodzi przekierowanie? W nagłówkach odpowiedzi nie ma nic z pierwszego żądania POST, a JavaScript nie jest włączony.

Wypróbuj w Chrome. Chciałbym wiedzieć, jak to robi, więc mogę odpowiednio dostosować aplikację mobilną, którą tworzę.

rozwiązany: W mojej aplikacji mobilnej byłem wysłanie żądania POST do prawego URL, ale ciąg URL Kiedyś był kodowany, co było przyczyną problemu.

+0

Prawdopodobnie nagłówek 'Location:' jest wysyłany z pierwszym żądaniem (do którego przeglądarka następnie uruchamia się po przetworzeniu odpowiedzi). –

+0

Przeszedłem przez nagłówki z cienkim grzebieniem zębów, tam nic nie widzę. –

+0

Tak, wiele aplikacji mobilnych opiera się na Globalnym Systemie Pozycjonowania, dzięki czemu może dostosować, do którego serwera się zalogować. – Greg

Odpowiedz

6

Pierwsze żądanie POST odsyła nagłówek Location, który informuje przeglądarkę, aby odłączyła się od tej prośby i przystąpiła do następnej. Druga prośba to po prostu przeglądarka, a następnie nowa dostarczona i przesuwająca się nowa Location.

oto co widać z pierwszej odpowiedzi Post:

Screenshot of response eheader http://s21.postimage.org/y238ccsfb/Untitled.png

Jednak z tego co widzę to 302 (redirection: found) reakcja, a nie 200 OK. Coś mi mówi, że oceniasz nagłówki odpowiedzi na ostatnim wniosku, a nie pośrednie przekierowanie/przekazanie.

+0

Nie interesująca jest właściwość AllowAutoRedirect HttpWebRequest (C#) podążająca za nagłówkiem Location? –

+0

@JamesJeffery: Ponieważ jest to adres 3xx, będzie następował (chyba że właściwość jest ustawiona na wartość false lub liczba przeskoków została przekroczona) –

+0

Nie widzę nawet nagłówka lokalizacji podczas monitorowania nagłówków. Czy używasz starszej wersji UA, aby ładować stronę WAP, a nie zwykłą stronę mobilną Facebooka? –

Powiązane problemy