mitmproxy 的 TLS 指纹不符合典型的 Web 浏览器
作者: zeen创建于 2021年4月24日更新于 2026年9月3日
标签kind/featurearea/protocols
Cloudflare 通过 TLS 指纹识别 MITM [1][2]。mitmproxy 的流量被标记为机器人流量,因为 TLS 指纹不匹配用户代理的预期值。Cloudflare 的"机器人对抗模式"[3] 会返回 403 错误响应,尝试运行 JS 并显示验证码作为响应。在请求是跨站请求(AJAX 等)的情况下,没有合理的方法来避免此问题(因为您甚至在浏览器中都看不到验证码)。这使得 mitmproxy 对于那些通过跨站 AJAX 请求加载内容的域名而启用 Cloudflare 机器人检测的网站无法使用。理想的解决方案是将客户端的 TLS 配置(密码套件等)映射到出站连接中。另一种不那么完美(但可能更容易)的方法是硬编码特定浏览器(例如 Windows 上的 Chrome)的 TLS 设置,并覆盖用户代理头以匹配。这将使流量与正常浏览器无法区分开来。
内容来源: mitmproxy/mitmproxy