0

我正在尝试拦截提供 JS 文件的 https 请求并改用我的本地文件。使用 fiddler 工具,我能够成功拦截所有 http 请求提供的文件。但无法为 https 文件执行此操作。注意:我已将我的 JS 文件保存在本地服务器中。我只是使用了 C:\test\test.js 之类的直接路径

4

1 回答 1

2

您是否启用了解密 HTTPS 流量选项?

Fiddler2 包括解密、查看和修改 HTTPS 安全流量以进行调试的能力。默认情况下禁用解密功能。
默认情况下,会话列表将仅显示 HTTPS 加密字节流经的 CONNECT 隧道。

通过单击Tools > Fiddler Options > HTTPS勾选框启用流量解密选项Decrypt HTTPS Traffic

更新:
您可能希望顺便从代理发送备用 javascript(而不是更改源以在用户本地计算机上包含脚本文件)。

此外,正如 EricLaw 在对此答案的评论中指出的那样:
您还想查看 Fiddler 的AutoResponder 选项卡,该选项卡允许您从本地磁盘返回文件,而不是将请求传输到服务器
在此选项卡上,您可以输入匹配规则和操作字符串,如果请求 URI 与匹配规则匹配,Fiddler 将执行操作。


额外的(因为评论说不能这样做,因为它会破坏 https 的目的)

问:HTTPS 协议旨在防止流量查看和篡改。鉴于此,Fiddler2 如何调试 HTTPS 流量?

答:Fiddler2 依赖于“中间人”的 HTTPS 拦截方法。对于您的网络浏览器,Fiddler2 声称是安全的网络服务器,而对于网络服务器,Fiddler2 模仿网络浏览器。Fiddler2为了伪装成web服务器,动态生成HTTPS证书。

您的网络浏览器不信任 Fiddler 的证书(因为 Fiddler 不是受信任的根证书颁发机构),因此当 Fiddler2 拦截您的流量时,您会在浏览器中看到 HTTPS 错误消息。

顺便说一句,这几乎不是一个新概念,据我所知,mitmproxy可以做到。

希望这可以帮助!

于 2013-04-15T18:30:33.347 回答