ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用 Cap Checkpoint 中间件为 Elysia 应用接入自托管工作量证明 CAPTCHA

使用 Cap Checkpoint 中间件为 Elysia 应用接入自托管工作量证明 CAPTCHA 网络安全应用安全后端【免费下载链接】capFree, open-source and self-hosted CAPTCHA alternative to reCAPTCHA. Privacy-first and powered by proof-of-work and instrumentation challenges.项目地址https://gitcode.com/gh_mirrors/cap13/cap点击查看免费下载Cap 的 Checkpoint官方中间件能够在你的 Elysia 应用前复刻 Cloudflare 式的浏览器检查过渡页在机器人、LLM 与自动化滥用真正到达你的路由之前先通过自托管、开源的工作量证明Proof-of-WorkCAPTCHA 完成验证。读完本文你将掌握cap.js/middleware-elysia的安装方式、完整配置参数含义以及如何用几行代码把整个 Elysia 应用保护起来并了解中间件背后的验证流程与仓库实现细节。Checkpoint 是什么Checkpoint 此前被称为中间件是 Cap 提供的服务端保护方案。它像 Cloudflare 一样在访问者与你的业务路由之间插入一个浏览器检查过渡页访问者必须先通过验证才能继续访问后面的内容。与 Cap Standalone自托管后端 控制台不同Checkpoint 直接嵌入你的应用进程只需在服务器上加几行代码无需把整个网站迁移到任何第三方 CDN。需要注意这是一种核弹级方案它会拦截所有未经验证的访问因此也会影响搜索引擎爬虫等善意的机器人。如果你希望精确控制放行对象应优先考虑独立的验证组件方案如果你只想挡住绝大多数自动化流量Checkpoint 是最快的方式。安装Elysia 生态基于 Bun 运行中间件同样推荐使用bun安装依赖bun add elysia cap.js/middleware-elysia其中elysia是你的 Web 框架本体cap.js/middleware-elysia是 Cap 官方的 Elysia 中间件包。安装完成后你的应用需要一个验证组件widget或隐藏求解器并且必须指向/__cap_clearanceURL——这是中间件内置的验证交接端点。你可以把仓库 docs/public/checkpoints_screenshot.webp 对应的过渡页流程作为参考来设计自己的验证模板。基本用法将中间件挂载到 Elysia 实例上即可保护全部路由import { Elysia, file } from elysia; import { capMiddleware } from cap.js/middleware-elysia; new Elysia() .use( capMiddleware({ token_validity_hours: 32, // 令牌有效时长 tokens_store_path: .data/tokensList.json, token_size: 16, // 令牌大小字节 verification_template_path: join(dirname(fileURLToPath(import.meta.url)), ./index.html), scoping: scoped, // global | scoped }), ) .get(/, () Hello Elysia!) .listen(3000);原文档示例中Elysia的导入里包含file但示例代码并未使用它——你可以按需引入实际只需要Elysia和capMiddleware即可。启动后访问http://localhost:3000未持有有效令牌的请求会先看到验证过渡页通过工作量证明验证后获得令牌后续请求即可正常进入GET /返回 Hello Elysia!。配置参数详解capMiddleware接受一个配置对象各参数含义如下参数默认语义说明token_validity_hours32验证通过后签发的令牌有效时长小时。令牌过期后访问者需要重新验证。tokens_store_path.data/tokensList.json已签发令牌的持久化存储文件路径。中间件将令牌列表写入该 JSON 文件服务重启后令牌仍然有效。token_size16令牌的字节长度。数值越大令牌越难被暴力枚举同时存储占用也越大。verification_template_path无验证过渡页 HTML 模板的绝对路径。模板中只需包含一个指向/__cap_clearance的验证组件或隐藏求解器。scopingscoped令牌作用域策略可选global或scoped。scoped下令牌与特定请求上下文如站点/域名绑定更安全global下令牌在全局范围通用。其中scoping是 Cap 体系中反复出现的安全概念仓库在 standalone/test/scoped-keys.test.js 中同样测试了 scoped 站点密钥的隔离行为说明作用域隔离是贯穿 Cap 各组件的一致设计。生产环境建议保持scoped避免令牌被跨站点复用。verification_template_path使用join(dirname(fileURLToPath(import.meta.url)), ./index.html)计算这样无论从哪个目录启动服务都能正确解析到与入口文件同级的index.html——注意这是 ESM 场景下替代__dirname的标准写法。中间件的验证流程从仓库实现看Cap 的挑战验证遵循挑战—兑换—令牌三段式流程中间件的/__cap_clearance端点与 Cap 后端共享同一套设计访问者请求被中间件拦截未持有有效令牌则返回verification_template_path指定的过渡页页面中的验证组件向/__cap_clearance发起挑战请求服务端生成工作量证明挑战客户端在浏览器中完成工作量证明求解提交解决方案solutions服务端校验解决方案成功后签发令牌并写入tokens_store_path指定的存储文件之后携带该令牌的请求被中间件放行直到令牌超过token_validity_hours过期。这一流程与 standalone/src/cap.js 中POST /:siteKey/challenge生成挑战与POST /:siteKey/redeem兑换令牌含防重放 nonce 消费、过期与作用域校验的职责划分一致挑战只负责给出问题兑换才负责校验答案并签发令牌。中间件把这两个环节封装在/__cap_clearance一个端点内并对业务路由透明。从代码结构看仓库的 standalone/src/server.js 本身就是用 Elysia 构建的管理控制台new Elysia({ prefix: /server, ... })并通过onBeforeHandle实现认证与作用域守卫这从侧面验证了 Elysia 生态下编写、测试和部署这类中间件/服务是 Cap 项目实际采用的工程路径。与其他框架中间件对比Cap 提供了一组同构的框架中间件配置模式几乎一致迁移成本极低Express使用cap.js/checkpoint-express配合cookie-parser解析令牌见 Express CheckpointHono使用cap.js/checkpoint-hono通过app.use(*, capCheckpoint({...}))全局挂载见 Hono CheckpointElysia即本文的cap.js/middleware-elysia通过.use(capMiddleware({...}))挂载。三者共享token_validity_hours、tokens_store_path、token_size、verification_template_path等核心参数唯一的差异是 Express 需要显式引入cookie-parser。如果你在 Bun 生态中同时使用 Elysia 与 Hono选择哪个中间件取决于你的路由框架验证逻辑本身保持一致。上线前检查清单确认验证模板中的组件确实指向/__cap_clearance否则访问者将无法完成验证为tokens_store_path选择一个可持久化的目录如.data/并将该目录加入备份服务重启后令牌列表依赖此文件恢复按需调整token_validity_hours过短会导致真实用户频繁重新验证过长会降低防护灵敏度明确scoping策略多站点部署建议保持scoped记住 Checkpoint 会拦截包括搜索引擎爬虫在内的一切未验证流量上线前评估对 SEO 的影响相关讨论可参考 关于 Checkpoint。至此你的 Elysia 应用已经拥有了自托管、开源、隐私优先的工作量证明 CAPTCHA 防护全程无需依赖任何第三方验证服务。赞分享网络安全应用安全后端【免费下载链接】capFree, open-source and self-hosted CAPTCHA alternative to reCAPTCHA. Privacy-first and powered by proof-of-work and instrumentation challenges.项目地址https://gitcode.com/gh_mirrors/cap13/cap点击查看免费下载相关推荐Cap 项目 Elysia 中间件集成指南用 Cap Checkpoint 为 Elysia 应用接入自托管 PoW 人机验证Cap 项目 Elysia 中间件集成指南用 Cap Checkpoint 为 Elysia 应用接入自托管 PoW 人机验证 Cap 是一套免费、开源、可自网络安全应用安全后端OMI macOS 桌面端 SwiftUI/AppKit 运行时调试手册从第一个不可能转变到持久化防护OMI macOS 桌面端 SwiftUI/AppKit 运行时调试手册从第一个不可能转变到持久化防护 导读 当 macOS UI 故障的可见表象无法直网络安全应用安全后端在 Express 中集成 Cap Checkpoint用 cap.js/checkpoint-express 为路由加上自托管的工作量证明 CAPTCHA 防线在 Express 中集成 Cap Checkpoint用 cap.js/checkpoint express 为路由加上自托管的工作量证明 CAPTCHA网络安全应用安全后端上一篇IoT-For-Beginners 运输项目实战用 GPS 与 Azure Maps 构建食品运输供应链跟踪系统下一篇WTF-Solidity 工具链核心forge-std 标准库实战指南stdError / stdStorage / stdCheats / console创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表