识别用户发起的Web请求

时间:2011-11-20 10:10:32

标签: http web

只需查看整个HTTP Web浏览会话的tcp-capture, 是否可以区分用户发起的Web请求(通过单击链接或通过键入地址栏中的URL)和由(通过浏览器)发送的Web请求网页对象(图片,iframe,ajax等)。

Referer Header不符合要求,因为在用户启动的链接点击和浏览器请求该页面上的网页对象时,其值将相同。

1 个答案:

答案 0 :(得分:1)

没有简单的解决方案,我怀疑它甚至可以可靠地完成,但是这里有一些关于如何以多个步骤过滤数据的提示:

  1. <强>保持活动: HTTP允许在同一TCP连接上发出多个顺序请求(如果支持keepalive)。可以安全地假设只有TCP连接上的第一个请求可能是用户启动的,而其余请求应该是与该页面相关的图像/脚本。这应该会显着减少您需要进一步分析的请求数量。

  2. 内容类型:如果您准备假设只通过用户发起的请求下载了HTML,则可以过滤掉任何响应与某个{{1}不匹配的内容(例如text / html)

  3. 响应正文:您现在只剩下HTML响应,但是查看请求/响应标头几乎不可能将iframe请求与点击的链接区分开{{1在两种情况下都是相同的(尽管大多数iframe下载可能已在步骤1中过滤掉)。要进一步优化这一点,您必须解析每个HTML响应并查找可能导致非用户启动的HTML下载的任何Content-TypeReferer,然后过滤掉为这些资源创建的请求

  4. 这些都不是完美的分析,但它可能足以满足您的目的。例如,检测来自<iframe src="..."刷新的请求可能是不可能的。

相关问题