如何拦截客户端机器的HTTP请求和响应(如fiddler一样)

时间:2009-06-17 17:10:50

标签: http networking proxy

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

引擎盖下发生了什么?

你知道任何图书馆吗? (任何语言)

8 个答案:

答案 0 :(得分:23)

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

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

-EricLaw [MSFT]

答案 1 :(得分:13)

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

更多信息here

答案 2 :(得分:4)

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

来自维基百科:

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

来自extending fiddler

上的MSDN说明
  

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

答案 5 :(得分:1)

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

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

执行此类操作的库(在调试过程中拦截库调用)为detours

答案 6 :(得分:1)

另一种选择是使用Wireshark之类的东西。以下内容来自http://www.wireshark.org/

上的“关于”页面
  

Wireshark是世界上最重要的   网络协议分析仪,是   事实上(通常是法律上的)标准   跨越许多行业和教育   机构。

     

功能

     

Wireshark具有丰富的功能集,其中包括以下内容:

     
      
  • 深入检查数百个协议,并添加更多协议   时间
  •   
  • 实时捕捉和离线分析
  •   
  • 标准三窗格数据包浏览器
  •   
  • 多平台:在Windows,Linux,OS X,Solaris,FreeBSD,NetBSD上运行,   和许多其他人
  •   
  • 可以通过GUI或通过TTY模式浏览捕获的网络数据   TShark实用程序
  •   
  • 业界最强大的显示过滤器
  •   
  • 丰富的VoIP分析
  •   
  • 读/写许多不同的捕获文件格式:tcpdump(libpcap),Pcap   NG,Catapult DCT2000,Cisco Secure IDS   iplog,Microsoft网络监视器,   NetworkGeneralSniffer®(压缩式   和未压缩的),Sniffer®Pro和   NetXray®,网络仪器   Observer,NetScreen snoop,Novell   LANalyzer,RADCOM WAN / LAN分析仪,   Shomiti / Finisar Surveyor,Tektronix   K12xx,Visual Networks Visual UpTime,   WildPackets公司   EtherPeek / TokenPeek / AiroPeek等等   其他
  •   
  • 使用gzip压缩的捕获文件可以动态解压缩
  •   
  • 可以从以太网,IEEE 802.11,PPP / HDLC,ATM读取实时数据   蓝牙,USB,令牌环,帧   继电器,FDDI和其他(取决于   你的平台)
  •   
  • 对许多协议的解密支持,包括IPsec,ISAKMP,   Kerberos,SNMPv3,SSL / TLS,WEP和   WPA / WPA2
  •   
  • 可以将颜色规则应用于数据包列表,以实现快速,直观   分析
  •   
  • 可以将输出导出为XML,PostScript®,CSV或纯文本
  •   

答案 7 :(得分:1)

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

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