【发布时间】:2010-11-03 18:01:34
【问题描述】:
我认为拦截请求的唯一方法是使用代理,但 fiddler 可以通过某种方式拦截 HTTP 请求和响应,而无需在任何浏览器上进行任何配置。
幕后发生了什么?
你知道任何图书馆可以做到这一点吗? (任何语言)
【问题讨论】:
标签: http networking proxy
我认为拦截请求的唯一方法是使用代理,但 fiddler 可以通过某种方式拦截 HTTP 请求和响应,而无需在任何浏览器上进行任何配置。
幕后发生了什么?
你知道任何图书馆可以做到这一点吗? (任何语言)
【问题讨论】:
标签: http networking proxy
Fiddler 是一个代理,用 C# 编写并包装基本套接字。
它在运行时使用适当的 API 调用向 WinINET 注册,并以相同的方式分离。大多数浏览器会自动检测 WinINET 代理设置并使用它。 Firefox 没有,这就是当前版本的 Fiddler 安装 Firefox 插件的原因。
-EricLaw [MSFT]
【讨论】:
Fiddler 实际上确实使用了代理。我相信安装程序会自动将 IE 配置为使用 Fiddler 的代理。您还可以将其他浏览器配置为通过相同的代理,这样 Fiddler 也会分析它们的网络流量。
更多信息here
【讨论】:
我不知道 fiddler 是怎么做到的,但可以通过 Windows 上的 Layered Service Provider 来完成。
来自维基百科:
“分层服务提供程序 (LSP) 是 Microsoft Windows Winsock 2 服务提供程序接口 (SPI) 的一项功能。分层服务提供程序是使用 Winsock API 将自身插入 TCP/IP 堆栈的 DLL。一旦进入堆栈中,分层服务提供者可以拦截和修改入站和出站 Internet 流量。它允许处理发生在 Internet 和访问 Internet 的应用程序之间的所有 TCP/IP 流量(例如 Web 浏览器、电子邮件客户端、等)。”
【讨论】:
来自 extending fiddler 上的 MSDN 说明
Fiddler 支持 JScript .NET 事件处理引擎,允许用户自动修改 HTTP 请求或响应。引擎可以在 Fiddler 用户界面 (UI) 中修改会话的视觉外观,以引起对错误的注意或从列表中完全删除不感兴趣的会话。
【讨论】:
我猜你不想听到你可以在 Web 服务器而不是客户端(如果它在本地)中拦截它们,或者可以使用 WPAC(代理自动配置)。
另一种选择是使用像 SocksCap 这样的软件,它“调试”浏览器(或网络服务器)进程,每当他调用一些 winsock 函数时,它们就会拦截它并调用自己的代码。
执行此类操作(在已调试进程上拦截库调用)的库是 detours。
【讨论】:
可能在混杂模式下运行网络接口。这就是 WireShark 能够监控网络流量并显示它的方式。
【讨论】:
另一种选择是使用Wireshark 之类的东西。以下来自http://www.wireshark.org/上的关于页面
Wireshark 是世界上最重要的 网络协议分析仪,是 事实上(通常是法律上)的标准 在许多行业和教育 机构。
特点
Wireshark 具有丰富的功能集,其中包括:
- 对数百种协议进行深入检查,更多协议正在添加中 时间
- 实时捕获和离线分析
- 标准三窗格数据包浏览器
- 多平台:在 Windows、Linux、OS X、Solaris、FreeBSD、NetBSD、 和许多其他人
- 可以通过 GUI 或通过 TTY 模式浏览捕获的网络数据 TShark 实用程序
- 业内最强大的显示过滤器
- 丰富的 VoIP 分析
- 读/写许多不同的捕获文件格式:tcpdump (libpcap)、Pcap NG、Catapult DCT2000、思科安全 IDS iplog,微软网络监视器, Network General Sniffer®(压缩 和未压缩)、Sniffer® Pro 和 NetXray®,网络仪器 观察者、NetScreen 窥探、Novell LANalyzer、RADCOM WAN/LAN 分析仪、 Shomiti/Finisar 测量师,泰克 K12xx,视觉网络视觉正常运行时间, 野包 EtherPeek/TokenPeek/AiroPeek 等等 其他
- 使用 gzip 压缩的捕获文件可以即时解压缩
- 实时数据可以从以太网、IEEE 802.11、PPP/HDLC、ATM、 蓝牙、USB、令牌环、框架 中继、FDDI 和其他(取决于 你的平台)
- 对许多协议的解密支持,包括 IPsec、ISAKMP、 Kerberos、SNMPv3、SSL/TLS、WEP 和 WPA/WPA2
- 可以将着色规则应用于数据包列表,以实现快速、直观 分析
- 输出可以导出为 XML、PostScript®、CSV 或纯文本
【讨论】:
在没有代理的情况下拦截流量的另一种方法是在受支持的设备上使用 WCCP。
http://www.cisco.com/en/US/docs/ios/11_2/feature/guide/wccp.html
【讨论】: