【发布时间】:2020-06-01 13:22:20
【问题描述】:
问题标题可能没有涵盖整个主题,因为我做了很多研究并发现了许多奇怪的东西。
首先,我要实现的是某种类型的网站客户端,它可以代表用户运行(不做任何非法的事情,只是优化用户的一些工作流程)。我已经为许多网站做了这个并且效果很好。但是,现在的有一个问题。
通常,如果我遇到验证码,我只会打开一个嵌入式 Chrome 窗口供用户传递它。但是,对于我正在谈论的网站,它并没有帮助,因为验证码没有显示在浏览器中,而是在我模仿浏览器正在发送的请求时发送给我。
所以我尝试调查 Chrome 发送的请求和我的应用程序使用 Fiddler 发送的请求之间的区别。 但是,如果我启用 Fiddler,即使是真正的 Chrome 发送的请求也会面临相同的验证码。
我在 Chrome 中禁用了 HTTP/2、SPDY 和 IPv6,因为我认为这可能会有所不同。它没有帮助。我尝试使用 Chrome 开发工具比较 Chrome 发送的请求 - 没有区别,它们都使用 HTTP/1.1,都具有完全相同的标头,完全相同的 cookie(或没有 cookie,没有区别) .但是每当我启用 Fiddler 时,网站都会以验证码响应。
这是我第一次遇到这样的事情,我几乎准备把头撞到墙上,因为我看不出网站有任何可能的方式来理解请求正在被 Fiddler 代理因为它没有添加任何自定义标题或其他任何内容。
除非网站以某种方式检测到设置 HTTPS 连接的确切方式,这听起来很疯狂......这应该是不可能的。
寻求有关如何进一步调试的建议。
更新:
我没有找到解决方案,也不了解相关网站如何检测来自 Chrome 的直接连接,但设法找到了解决方法:
我正在获取带有我的代码从网站接收的验证码的页面,并将 CEF 收到的实际页面替换为动态验证码页面,从而允许用户通过它。
由于它没有回答原始问题,因此我不会将其作为答案发布,并将保留此问题。
【问题讨论】:
标签: http https fiddler chromium-embedded