【问题标题】:How to intercept HTTP requests and responses of a client machine (like fiddler does)如何拦截客户端机器的 HTTP 请求和响应(就像提琴手一样)
【发布时间】:2010-11-03 18:01:34
【问题描述】:

我认为拦截请求的唯一方法是使用代理,但 fiddler 可以通过某种方式拦截 HTTP 请求和响应,而无需在任何浏览器上进行任何配置。

幕后发生了什么?

你知道任何图书馆可以做到这一点吗? (任何语言)

【问题讨论】:

    标签: http networking proxy


    【解决方案1】:

    Fiddler 一个代理,用 C# 编写并包装基本套接字。

    它在运行时使用适当的 API 调用向 WinINET 注册,并以相同的方式分离。大多数浏览器会自动检测 WinINET 代理设置并使用它。 Firefox 没有,这就是当前版本的 Fiddler 安装 Firefox 插件的原因。

    -EricLaw [MSFT]

    【讨论】:

    • 核心开发人员发送有关他们自己软件的问题的答案不是很好吗? Fiddler 很酷,我不知道没有它我会做什么 :-) (最新的 Eclipse 3.5 还配置自己使用来自 IE 的代理,所以当我启动 Fiddler 时,Eclipse 现在也使用它!)
    【解决方案2】:

    Fiddler 实际上确实使用了代理。我相信安装程序会自动将 IE 配置为使用 Fiddler 的代理。您还可以将其他浏览器配置为通过相同的代理,这样 Fiddler 也会分析它们的网络流量。

    更多信息here

    【讨论】:

    • 我的浏览器选项中没有配置任何内容,即使我在fiddler之后安装了chrome或firefox也可以使用。如果提琴手关闭,一切正常。我无法想象 fiddler 的程序员会考虑所有这些用例,这太难了。
    • 嗯,我从来没有真正让 Fiddler 配置任何其他浏览器而不使用配置它们以使用 Fiddler 作为代理。你用的是什么版本的 Fiddler?
    • 它是 2.2.2.0 版本,我从来不需要在浏览器中配置任何东西来让 fiddler 工作。
    • Fiddler 更改了 IE、Safari、Chrome 自动使用的系统代理配置。最近版本的 Fiddler 还安装了一个 Firefox 插件,该插件将在运行/主动捕获数据包时自动设置代理配置。就 Opera 和其他浏览器而言,您的体验可能会有所不同。
    • 我刚打开 Fiddler(过去几个月一直提示我更新:P),从 2.2.1.4(2009 年 3 月 31 日发布)开始,Fiddler 包括 FiddlerHook Firefox乔丹提到的扩展。这就解释了为什么它不能捕获我机器上其他浏览器的流量,我必须安装更新!
    【解决方案3】:

    我不知道 fiddler 是怎么做到的,但可以通过 Windows 上的 Layered Service Provider 来完成。

    来自维基百科:

    “分层服务提供程序 (LSP) 是 Microsoft Windows Winsock 2 服务提供程序接口 (SPI) 的一项功能。分层服务提供程序是使用 Winsock API 将自身插入 TCP/IP 堆栈的 DLL。一旦进入堆栈中,分层服务提供者可以拦截和修改入站和出站 Internet 流量。它允许处理发生在 Internet 和访问 Internet 的应用程序之间的所有 TCP/IP 流量(例如 Web 浏览器、电子邮件客户端、等)。”

    【讨论】:

    • 我也愿意接受这个答案,因为这是对我问题第二部分的回答>_
    • 很好,但它对 HTTPS 没有帮助
    【解决方案4】:

    来自 extending fiddler 上的 MSDN 说明

    Fiddler 支持 JScript .NET 事件处理引擎,允许用户自动修改 HTTP 请求或响应。引擎可以在 Fiddler 用户界面 (UI) 中修改会话的视觉外观,以引起对错误的注意或从列表中完全删除不感兴趣的会话。

    【讨论】:

      【解决方案5】:

      我猜你不想听到你可以在 Web 服务器而不是客户端(如果它在本地)中拦截它们,或者可以使用 WPAC(代理自动配置)。

      另一种选择是使用像 SocksCap 这样的软件,它“调试”浏览器(或网络服务器)进程,每当他调用一些 winsock 函数时,它们就会拦截它并调用自己的代码。

      执行此类操作(在已调试进程上拦截库调用)的库是 detours

      【讨论】:

        【解决方案6】:

        可能在混杂模式下运行网络接口。这就是 WireShark 能够监控网络流量并显示它的方式。

        更多信息:http://en.wikipedia.org/wiki/Promiscuous_mode

        【讨论】:

          【解决方案7】:

          另一种选择是使用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 或纯文本

          【讨论】:

            【解决方案8】:

            在没有代理的情况下拦截流量的另一种方法是在受支持的设备上使用 WCCP。

            http://www.cisco.com/en/US/docs/ios/11_2/feature/guide/wccp.html

            【讨论】:

              猜你喜欢
              • 2015-08-25
              • 1970-01-01
              • 2017-03-08
              • 1970-01-01
              • 1970-01-01
              • 2019-11-27
              • 2020-10-22
              • 2011-02-17
              • 1970-01-01
              相关资源
              最近更新 更多