>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Unknown

不要再讨厌 CAPTCHA 了——从容应对验证码

熟悉的场景:你在写数据解析脚本或自动化例行网站检查,然后它出现了。CAPTCHA。起初看起来只是个小麻烦,但经过十次迭代后,红绿灯和消防栓开始出现在你的噩梦中。当然,你可以连接提供“实时”求解器的服务,但那样速度慢,通常很贵,而且也不总是可靠。

最近我偶然发现了 nopecha-extension 仓库。这是一个由一群决定用神经网络来解决这个问题的人开发的项目。他们构建了一个浏览器扩展和 API,可以自动破解 CAPTCHA,模拟人类行为。这个项目看起来很可靠:GitHub 上超过 10,000 颗星,并且定期更新。

NopeCHA 能做什么

简而言之,它是一个基于多模态 AI 的自动求解器。与旧方法(只是发送图像进行文本识别)不同,这里的系统学习与界面进行交互。

该项目支持的验证码类型几乎涵盖了你网上遇到的所有类型:

  • 标准的 reCAPTCHA 和 hCaptcha。
  • 棘手的 Cloudflare Turnstile。
  • FunCAPTCHA 和 AWS WAF。
  • 文本 CAPTCHA(包括数学表达式)。
  • 甚至 hCaptcha 中的视频挑战。

有趣的细节:开发者使用强化学习(RL)。他们的代理不断与真实 CAPTCHA 交互,收集反馈,并更新模型。因此,一旦出现新型验证,神经网络几乎可以实时开始“学习”如何绕过它。

实际工作原理

试用这个工具最简单的方法是在 Chrome 或 Firefox 中安装扩展。它开箱即用:检测到页面上的 CAPTCHA 后自动点击正确的按钮。对于自动化开发者来说,这是一个救星,因为扩展可以轻松注入到 Selenium、Puppeteer 或 Playwright 中。

reCAPTCHA

在最近的更新(0.6.0 版本)中,他们添加了可配置的鼠标移动速度和点击可视化功能。这样做是为了让反欺诈系统不会因为脚本动作过于“机器人化”而标记它。现在光标可以沿曲线移动,模拟真实用户的手部震颤或犹豫感。

技术层面和 API

如果扩展选项不适合你(例如,你正在用 Python 或 Go 编写服务器端脚本),该项目提供了 API。

对于需要深度集成的人,有流行语言的库可用。仓库中有 PyPI 和 NPM 上的包链接。免费限制是每个 IP 每天 100 次请求。对于个人项目或小型“自用”脚本来说,这已经足够了。如果需要更多,你就需要获取 API 密钥。

顺便说一下,2023 年该项目转向了闭源开发。仓库现在包含现成的扩展构建版本和文档,但神经网络模型和最新扩展版本的源代码是隐藏的。开发者解释这是为了防止滥用,并希望保持对反欺诈系统的优势。只有旧的 v0.3.x 分支保持公开可用,你可以研究它来了解扩展工作原理的基本原理。

谁会发现它有用

我看到几个 NopeCHA 真正能节省时间的场景:

  1. QA 测试人员。当你需要在前端运行回归测试,但注册表单受 CAPTCHA 保护时。与其请求开发者在 staging 环境禁用保护,不如直接接入扩展。
  2. 数据工程师。当从不欢迎自动化的平台收集公开数据时。
  3. 工具开发者。如果你在构建需要与没有官方 API 的第三方服务交互的软件。

Cloudflare Turnstile

值得一试吗

这个项目以其多功能性吸引你。支持 Cloudflare Turnstile 和 AWS WAF 是目前的“黄金标准”,因为常规 OCR 库根本无法处理它们。

缺点方面:转向闭源可能会让那些习惯了对项目中的依赖有完全控制权的人感到失望。还要记住,任何 CAPTCHA 绕过自动化都是一场猫鼠游戏。今天它运行完美,明天 Google 发布更新,你就得等待 NopeCHA 作者的补丁。根据发布历史,补丁出来得很快,但“ flaky ”测试的风险始终存在。

如果你需要一个快速解决方案来绕过检查,而不想用 OpenCV 自己编写变通方案,NopeCHA 是目前最明智的选择之一。你可以从免费限制开始,然后根据工作负载扩展。

相关项目