2014-01-31 100 views
0

我對這裏的東西很困惑。一旦您點擊網站上的「Tweet」按鈕,推文會如何發送到服務器?推文如何發送?

爲了回答這個問題,我設置了一個代理偵聽器來攔截所有請求和所有內容。我在本地主機和所有設置上設置了瀏覽器,並且,雖然我在加載Twitter.com時收到了所有請求,但從我點擊「Tweet」的時間以及它在我的流中顯示的時間沒有收到任何請求。

這究竟是如何物理上可能的?我在這裏錯過了一些非常簡單的東西嗎?

回答

4

Twitter現在只使用HTTPS,因此如果不設置MITM代理,您將無法偵聽正在傳輸的數據。

至於建立MITM代理,看看這個軟件:mitmproxy

如果你正在尋找自己的Twitter的網頁/應用程序發送推文,單獨,看看他們的API:Twitter 1.1 API - statuses/update

大多數瀏覽器都附帶開發人員插件,可讓您查看請求(包括HTTPS請求)發送的數據。最好的 - 在我看來 - 是Chromes開發者擴展(默認安裝),可以通過按'F12'打開。 FireFox的另一種替代方法是Firebug,一旦安裝,也可以通過按'F12'打開。此外,或許您應該爲自己的文章添加更多上下文,例如您感興趣的平臺,如Android,iPhone或Web(即Twitters vanilla網站)。

+1

感謝您的參考!我正在查看它。我確實指出它是爲網站設計的,但我編輯並重新填寫。謝謝。 –

+1

認爲你也可以使用[Wireshark](http://www.wireshark.org/)配置爲偵聽tcp端口443. – Damon

+0

不是沒有配置Wireshark充當MITM,我記得這不是那麼簡單(雖然自從我上次嘗試以來已經有一段時間了..)。 MITM負責所有這些,爲您提供安裝的CA。對於使用HTTPS的逆向工程應用程序非常有用的應用程序。 – Seidr

2

假設您使用的是Twitter網站,使用TamperData進行快速瀏覽的結果顯示,瀏覽器正在向包含推文內容的https://twitter.com/i/tweet/create發送POST請求。

+0

所以我的代理監聽器不夠複雜? –

+0

這是一個很好的觀點 - 現在我知道你在瀏覽器中工作,任何一種開發插件都應該能夠爲你提供你所需要的信息。 – Seidr

0

我在研究Twitter是否使用其網站上的https://api.twitter.com發送推文,並且我注意到(使用Chrome F12)該請求實際上是通過https://twitter.com/i/tweet/create發送的。我的印象是,Twitter使用他們的API在設備上發出了一個安靜的電話。他們是否在服務器上有一個代理服務器,它將來自瀏覽器的請求轉換並轉發給它的web服務?而且,如果通過POST /1/direct_messages/new.json HTTP/1.1將所有請求轉換併發送到其api子域,他們如何知道發出請求的設備?我注意到有效載荷是

authenticity_token = abc1234c3 & place_id = &狀態=井%2C +這是+ A +消息。+%7BAfter +註冊%7D

道歉的scriptic消息 - 我只能在這篇文章中使用兩個鏈接(你看到的新用戶!)