我正在尝试拦截一个为JS文件提供服务的https请求,并使用我的本地文件。使用fiddler工具,我能够成功拦截所有http请求服务的文件。但无法对https文件执行此操作。注意:我将JS文件保存在本地服务器上..我只使用了直接路径,如C:\test\test.js
发布于 2013-04-16 02:30:33
您是否启用了解密HTTPS流量选项?
Fiddler2包括解密、查看和修改HTTPS保护的通信以进行调试的功能。默认情况下,解密功能处于禁用状态。
默认情况下,会话列表将仅显示HTTPS加密的字节流经的连接隧道。
单击Tools > Fiddler Options > HTTPS ticking Decrypt HTTPS Traffic框启用流量解密选项。
更新:
顺便说一句,您可能希望从您的代理发送备用javascript (而不是更改源代码以包含用户本地计算机上的脚本文件)。
此外,正如EricLaw在对此答案的评论中所指出的:
您还可以查看Fiddler的AutoResponder选项卡,它允许您从本地磁盘返回文件,而不是将请求传输到服务器。
在此选项卡上,您可以输入匹配规则和操作字符串,如果请求URI与匹配规则匹配,则Fiddler将执行操作。
Extra (因为有人评论说这不能做,因为这会违背https的目的)
HTTPS:
协议旨在防止流量查看和篡改。鉴于此,Fiddler2如何调试HTTPS流量?
答: Fiddler2依靠一种“中间人”的方法来拦截HTTPS。对于web浏览器,Fiddler2声称是安全web服务器,而对于web服务器,Fiddler2模拟web浏览器。为了伪装成web服务器,Fiddler2动态生成HTTPS证书。
您的web浏览器不信任Fiddler的证书(因为Fiddler不是受信任的根证书颁发机构),因此当Fiddler2拦截您的流量时,您将在浏览器中看到HTTPS错误消息。
顺便说一句,这几乎不是一个新概念,据我所知,mitmproxy可以做到这一点。
希望这能有所帮助!
https://stackoverflow.com/questions/16021760
复制相似问题