推出Cap:一个私密、轻便、开源的工作量证明CAPTCHA替代方案
Cap:一种基于工作量证明的验证码替代方案
项目简介
Cap 是一个轻量、现代、开源的验证码替代方案,它利用 SHA-256 工作量证明来验证用户真实性。它致力于提供一个快速、注重隐私且易于集成的解决方案,旨在作为现有验证码系统的直接替代品,同时专注于性能和用户体验。Cap 使用 JavaScript 构建,可在任何 JS 运行时(如 Bun、Node.js、Deno)上运行。对于非 JS 环境,还提供了一个独立的 Docker 镜像。
Cap 主要由两部分组成:
- @cap.js/widget
:一个用于渲染验证码并在 Web Workers 和 WASM 的帮助下解决挑战的 JavaScript 库。
- @cap.js/server
:一个零依赖的库,用于在服务器端创建和验证挑战。
此外,还提供了一些其他有用的包和功能:
- @cap.js/solver
:一个用于机器间交互的服务器端解题器。
- @cap.js/cli
:一个命令行界面,主要用于测试或不带 JavaScript 浏览器支持的环境中解决验证码。
- 独立模式:通过 Docker 镜像提供简单的 REST API 和交互式界面,用于创建/验证挑战,支持与任何语言/框架集成。
- @cap.js/wasm
:使用 Rust 构建的实验性 WASM 解题器。
- 检查点中间件:例如 @cap.js/checkpoint-hono
、@cap.js/checkpoint-express
和 @cap.js/middleware-elysia
等库,可提供类似 Cloudflare 浏览器检查点的体验。
使用说明
Cap 可以在 JavaScript 运行时环境中使用其 JavaScript 库(@cap.js/widget
和 @cap.js/server
)进行集成。对于非 JavaScript 环境,独立的 Docker 镜像提供了用于交互的 REST API。详细的快速入门指南和完整文档可通过项目链接获取。
主要特点
- 轻量级:
@cap.js/widget
仅有 12kb(minified 和 brotli 压缩后),比 hCaptcha 小 250 倍。 - 保护隐私:采用工作量证明,无需跟踪、指纹识别或数据收集。
- 工作量证明 (PoW):使用 SHA-256 PoW,使人类更容易解决(通过执行少量计算),而对机器人则更难。
- 完全可定制:可自托管,支持后端和前端的定制,或通过 CSS 变量进行调整。
- 独立模式:提供 Docker 镜像,通过简单的 REST API 支持与任何编程语言或框架集成。
- 隐形模式:可通过 JavaScript API 在后台隐形运行。
- 浮动模式:验证码默认隐藏,仅在明确需要时才出现。
- 完全开源:采用 Apache License 2.0 授权。
- 无依赖:核心组件使用 JavaScript 构建,不依赖任何外部库。
- 跨运行时兼容:可在 Bun、Node.js、Deno 上运行。
- 符合 GDPR/CCPA:其以隐私为中心的设计天然符合这些法规。
目标用户
Cap 非常适合: - 寻求注重隐私和性能的验证码替代方案的开发者和组织。 - 需要保护 API 免受机器人攻击的网站和应用程序。 - 旨在防止表单垃圾邮件的在线平台。 - 需要阻止自动化登录尝试的服务。 - 需要防范免费套餐滥用的项目。
项目链接
- GitHub 仓库:https://github.com/tiagorangel1/cap
- 文档/网站:https://capjs.js.org/
应用场景
- API 保护:保护 REST API 免受自动化请求和机器人攻击。
- 表单垃圾邮件预防:在联系表单、注册表单和评论区部署验证码,防止垃圾邮件提交。
- 登录安全:增加一道防线,抵御暴力破解攻击和自动化登录尝试。
- 防止免费套餐滥用:通过确保是人类的合法互动,缓解免费服务或有限资源的滥用。
- 类似 Cloudflare 的检查点:使用提供的中间件创建浏览器检查点体验,以增强安全性。