我正在编写一个客户端以通过 https 从服务器(不受我控制)检索数据,并且效果很好。
我想要做的是使我对服务器的请求不能被客户端计算机上的某人使用 Fiddler 等嗅探。那么有什么方法可以在 Fiddler 拦截它们之前对 headers/url 进行加密?
我对 Fiddler 的理解是,它通过冒充代理站在客户端和服务器之间。你是对的,看起来 Fiddler 有能力拦截 HTTPS 传输。
但是,根据Fiddler 的文档,您的 C# 应用程序不会信任 Fiddler 提供的证书。C# 应用程序将抛出一个异常,指出它无法验证与远程服务器的信任。并且不会传输任何数据。
如果您真的很偏执,您可以执行所谓的“证书固定”,您的 C# 应用程序将从 HTTPS 服务器查找特定证书,以确保它是您正在寻找的确切服务器。但是,如果证书要更改,您需要更新您的应用程序。
编辑:重新阅读文档,Fiddler 确实为它使用的证书提供了一种受 Windows 信任的方法(以及使用 Chrome 和 .NET 等受信任商店的任何后续应用程序)。如果这样做了,您的 C# 应用程序很可能会正常运行,而您的流量对 Fiddler 完全可见。如果您出于某种原因对此感到担心,我会研究一下证书固定。