如何防止网站检测到 Fiddler

2024-02-07

问题标题可能没有涵盖整个主题,因为我做了很多研究并发现了许多奇怪的事情。

因此,首先,我想要实现的是某种代表用户工作的网站客户端(不做任何非法的事情,只是优化用户的一些工作流程)。我已经为很多网站这样做过,效果很好。然而,目前的情况存在一个问题。

通常,如果我遇到验证码,我只会打开一个嵌入式 Chrome 窗口供用户通过。但是,对于我正在谈论的网站,它没有帮助,因为验证码不会显示在浏览器中,而是在我模仿浏览器准确发送的请求时发送给我。

因此,我尝试调查 Chrome 发送的请求与使用 Fiddler 的应用程序发送的请求之间的差异。 然而,如果我启用 Fiddler,即使是真正的 Chrome 发送的请求也会面临相同的验证码。

我在 Chrome 中禁用了 HTTP/2、SPDY 和 IPv6,因为我认为这可能是区别。这没有帮助。我尝试使用 Chrome 开发工具比较 Chrome 发送的请求 - 没有区别,它们都使用 HTTP/1.1,都具有完全相同的标头,完全相同的 cookie(或没有 cookie,没有区别) 。但每当我启用 Fiddler 时,网站就会用验证码进行响应。

这是我第一次遇到这样的事情,我几乎准备好用头撞墙,因为我看不到任何可能的方式让网站了解该请求是由 Fiddler 代理的,因为它不是添加任何自定义标头或其他内容。

除非网站以某种方式检测 HTTPS 连接的设置方式,这听起来很疯狂……这应该是不可能的。

寻找有关如何进一步调试的建议。

Update:

我没有找到解决方案,也不了解相关网站如何检测来自 Chrome 的直接连接,但设法找到了解决方法:

我正在获取带有我的代码从网站接收到的验证码的页面,并用该验证码页面动态替换 CEF 收到的实际页面,从而允许用户通过它。

由于它没有回答原来的问题,我不会将其作为答案发布,并将保留这个问题。


网站本身通常不会检测到任何内容。验证码通常由反攻击保护服务提供商(例如 Cloudflare)提供。

根据我的经验,此类系统将通过 JavaScript 的浏览器指纹识别系统(获取所使用的网络浏览器名称、版本和所使用的操作系统)与 HTTPS (TLS) 级别的检测结合起来:

在 TLS 协议握手中,客户端发送 CLIENT_HELLLO 消息,其中包含有关受支持的 TLS 版本和密码套件的信息以及某些 TLS 扩展中的其他附加数据(例如,如果它支持 HTTP/2)。

这次握手可以再次被指纹识别。例如,如果您现在通过 Fiddler 使用 Firefox,则浏览器指纹显示 Firefox,但 Fiddler 是一个 .Net 应用程序,因此指纹表明使用了 Windows schannel TLS 库。两个指纹都不匹配,因此保护系统会将您重定向到验证码对话框。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止网站检测到 Fiddler 的相关文章

  • Android httpclient文件上传数据损坏和超时问题

    我在 Android 中上传图像时遇到问题 我正在使用 apache httpmime 4 1 lib 代码是这样的 MultipartEntity reqEntity new MultipartEntity HttpMultipartMo
  • 如何忽略 perl 中的“证书验证失败”错误?

    我想访问一个无法验证证书的网站 我正在使用 WWW Mechanize 获取请求 那么如何忽略这一点并继续连接到该网站呢 use IO Socket SSL qw use WWW Mechanize qw my mech WWW Mecha
  • 如何在java中以编程方式访问网页

    有一个网页 我想从中检索某个字符串 为此 我需要登录 单击一些按钮 填充文本框 单击另一个按钮 然后就会出现字符串 我怎样才能编写一个java程序来自动执行此操作 是否有任何有用的库用于此目的 Thanks Try HtmlUnit htt
  • Zoopla 沙箱出现 cURL http 标头错误

    我正在为房地产经纪人开发代码 以通过他们的数据源将房产上传到 Zoopla 我在将所需的配置文件添加到所需的 http 标头时遇到问题 文档中唯一的示例是来自 Linux 的测试 echo branch reference test cur
  • HTTPURLConnection 不遵循从 HTTP 到 HTTPS 的重定向

    我不明白为什么JavaHttpURLConnection不遵循从 HTTP 到 HTTPS URL 的 HTTP 重定向 我使用以下代码来获取页面https httpstat us https httpstat us import java
  • C# HTTP 请求解析器[重复]

    这个问题在这里已经有答案了 可能的重复 将原始 HTTP 请求转换为 HTTPWebRequest 对象 https stackoverflow com questions 318506 converting raw http reques
  • http和https在编程中有什么区别[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只知道 s 代表 安全 用户永远不
  • 不加载隐藏图像

    我的网站上有一堆隐藏图像 它们的容器 DIV 具有 style display none 根据用户的操作 某些图像可能会通过 JavaScript 显示 问题是我的所有图像都是在打开页面时加载的 我想通过仅加载最终可见的图像来减轻服务器的压
  • Java8,HttpClient,接收“收到致命警报:handshake_failure”

    我们正在尝试访问以下 URL 仅作为示例 https broadly vice com en us article eating out as a feminist https broadly vice com en us article
  • Spring RestTemplate - 带有请求正文的http GET [重复]

    这个问题在这里已经有答案了 可能的重复 带请求正文的 HTTP GET https stackoverflow com questions 978061 http get with request body 我在这里读过一些不提倡通过 HT
  • Rest 和 Http 中“无状态”的含义

    当我阅读有关 REST 是什么的文档时 他们总是说 REST api 应该是无状态的 在这里 我感觉有点尴尬 因为普通的 HTTP 也是无状态的 既然REST可以说是一种使用HTTP协议的特殊架构 那么说REST应该是无状态的似乎是多余的
  • Nitrous.IO 上的 HTTPS (TLS/SSL) 服务器

    请问如何在 Nitrous IO Boxes 上创建 TLS 服务器 我认为我至少必须获得 cert pem 和 key pem 或类似的东西 根据您所在的区域 您可以自动获得 SSL 身份验证 这样就够了吗 http help nitro
  • 如何在 G-WAN 中添加 HTTP/2

    我想知道是否可以通过使用解决方案 nghttp2 https nghttp2 org https nghttp2 org 很抱歉这么晚才回答 出于某种原因 Stackoverflow 没有通知我们这个问题 我之所以找到它只是因为收到了更新的
  • 当支持 SPDY 的浏览器收到 HTTP2 (H2) 响应时会发生什么?

    我的直觉是 支持 SPDY 的浏览器会将其视为 SPDY 响应 然而 我能找到的最多的是 H2 响应将优雅地降级到 HTTP1 1 的保证 我正在考虑以面向 H2 的方式提供资产 多个请求 无域分片等 但我确实需要支持一些非 H2 浏览器
  • 使用 POST 请求向 Jira API 发送 JSON 时出现 System.Net.WebException

    好吧 伙计们 我已经为这个问题苦苦挣扎了一天左右 但没有明确的解决方案 我将从例外开始 The remote server returned an error NotFound at System Net Browser AsyncHelp
  • iframe src 允许所有来源,但仍然收到跨来源错误

    我管理 siteA 的前端 并在页面上有一个 iframe 其中 src 指向 siteB 的资源 这是其他供应商和客户端使用的可嵌入资源 其视频嵌入 因此 siteB 的响应标头设置为 Access Control Allow Origi
  • URL::forceSchema 在登录前不起作用

    我在用着URL forceSchema https 在我的 Laravel 5 3 应用程序上强制使用 SSL 然而 它只有在登录后才有效 即使登录页面没有被 https 覆盖 我在用着可信代理 https github com fidel
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 在 Python 中将 GET 更改为 POST (Flask)

    我正在尝试创建一个简单的应用程序 其中在服务器上生成整数数组并将其发送到客户端 以下是 app py 中的一些示例 工作 代码 from flask import Flask render template request url for
  • 为什么使用 Response 设置后,Request 中的 Cookie 立即可用?

    在页面加载中 如果您立即在下一行中执行 Response Cookies Add 您可以通过 Request Cookies 访问该 cookie 我知道在幕后 cookie 是由 net 添加到 Request Cookies 中的 但原

随机推荐