HTTP“会话”重建如何工作?

时间:2012-11-26 21:35:45

标签: http network-programming sniffing

我在网上找到了这个工具:http://www.unleashnetworks.com/products/unsniff.html

这是如何工作的?他们是否假设会话的所有HTTP流量都发生在同一个TCP会话中,然后只是将所有数据聚集在一起?这是一个安全的假设吗?

我的印象是,当我加载页面时,可能会为单页加载(图像,视频,闪存等等)运行多个TCP会话。

当我考虑打开两个同时加载页面的浏览器标签时,这似乎变得复杂了。我可以将一个http“会话”区别于另一个吗?特别是如果他们打同一页,对吧?

就此而言,浏览器如何知道哪些数据属于哪个标签?它是否跟踪属于单个选项卡的TCP会话?

编辑:

当上面提到HTTP会话时,我指的是加载页面所需的所有相关HTTP事务。

通过TCP会话,我实际上指的是握手的SYN - > FIN包的生命周期。

2 个答案:

答案 0 :(得分:0)

虽然它可能不可见,但HTTP会话跟踪器正作为参数或e cookie(标题)从客户端传递到服务器

您可能需要阅读HTTP session token

会话令牌是生成的唯一标识符,并从服务器发送到客户端以标识当前的交互会话。客户端通常将令牌存储并作为HTTP cookie发送和/或将其作为GET或POST查询中的参数发送。使用会话令牌的原因是客户端只需处理标识符 - 所有会话数据都存储在服务器上(通常在客户端没有直接访问权限的数据库中)链接到该标识符。某些编程语言在命名其HTTP cookie时使用的名称示例包括JSESSIONID(JSP),PHPSESSID(PHP)和ASPSESSIONID(ASP)。

答案 1 :(得分:0)

我不熟悉你链接到的“Unsniff”应用程序,但我之前使用了一些数据包嗅探器(我最喜欢的是Wireshark)。通常,您可以根据连接的主机区分会话。因此,例如,如果您打开了2个选项卡,其中一个打开了www.google.com,另一个打开了www.facebook.com,则数据包嗅探器应该能够告诉您哪个会话指向哪个主机(或者至少为您提供一个IP地址,然后您可以使用该地址查找主机。请参阅:reverse lookup)。

大多数情况下,多个HTTP会话将对一个主机开放。当您加载网站的各种资源(CSS文件,图像,JavaScript等)时就是这种情况。这些资源中的每一个都将显示为单独的HTTP会话(当然,除非连接是persistent ...但是您的嗅探器应该能够将它们分开)。在这种情况下,您(或嗅探器)将需要通过查看HTTP数据包中的实际数据来确定下载的内容。