跳到主要内容

工作原理

一次验证由四个步骤组成,全部在一次页面访问内完成。服务端不为「未完成的挑战」保存任何状态。

浏览器→/challenge→本地求解→/redeem→业务接口

索取挑战

请求一份带签名的参数:子挑战数量、盐长度、难度与有效期。参数自洽,无需先存进数据库。

本地求解

浏览器在 Worker 里反复计算 SHA-256,直到哈希满足难度要求。求解器由本站静态资源提供。

兑换令牌

把解交回服务端。验签、验算、确认这份挑战未被兑换过,随后签发短时效令牌。

随表单提交

业务接口在信任数据之前校验用途与时效;不匹配或过期一律拒绝。

三层保证​

01 / COST

计算成本

难度以前导零个数计量。提高一档,批量请求的代价就近乎翻倍,单个访客几乎无感。

02 / SCOPE

作用域绑定

登录页解出的挑战不能拿去注册或找回密码。用途随挑战签发并写进令牌,逐次比对。

03 / ONCE

兑换不可重放

同一份挑战只能兑换一次;令牌带过期时间与专用标记,普通会话凭证无法冒充。

本章页面​

页面内容
索取挑战参数、签名与无状态设计
本地求解Worker、WASM 与难度语义
兑换令牌验算、一次性兑换与令牌内容
作用域与重放用途注入、白名单与重放防护
提示

想直接动手?跳到五分钟接入。