2014-01-31 78 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消息 - 我只能在这篇文章中使用两个链接(你看到的新用户!)