跳到正文

登录前的人机验证

人机验证位于登录流程最前面,用于减少自动化请求直接进入认证接口。它不代替登录凭据、IP 白名单或 WAF。

系统设置 → Challenge 选择验证方式并保存。新的登录页会使用新设置;已有会话不会因此失效。

可选方式

方式特点适合场景
PoW浏览器完成一次工作量证明,不依赖第三方站点希望减少外部依赖,且可接受少量客户端计算
Cloudflare Turnstile由 Cloudflare 执行验证已使用 Cloudflare,且希望使用其托管的人机验证

PoW 是默认内置方案。浏览器取得 SHA-256 挑战后在本地计算 proof;挑战有效期为 5 分钟,只能成功使用一次。

PoW 难度

PoW 设置提供两个预设:标准 的搜索上限为 100000很难300000。从旧版本升级后,如果保存的是其他有效数值,页面会显示为自定义值。服务端接受 100001000000、步长为 10000 的整数。

搜索上限越高,客户端平均计算量越大,但实际耗时仍取决于设备、浏览器和随机命中位置。提高难度会增加自动化请求成本,也可能明显影响低性能手机、旧设备和省电模式下的登录体验。修改后应分别用常用桌面端和移动端测试。

开启 不常用地提高难度 后,系统会根据最近 7 天已经成功通过认证的公网 IP 自动学习常用地区:

  • 已定位且命中常用地区时使用基础难度;
  • 已定位但不在常用地区时使用不常用地难度;
  • 私网、本地地址、定位未知或样本模型尚未形成时仍使用基础难度。

不常用地难度不能低于基础难度。该功能不会按账号建立固定“可信地点”名单,也不会直接拒绝新地区,只是提高对应 PoW 挑战的计算成本。旅行、运营商出口变化或 IP 定位偏差都可能触发更高难度;如登录体验异常,可先关闭该开关,而不是降低其他认证或访问控制。

选择 Turnstile 前必须先在 Cloudflare 创建 widget,并把 site keysecret key 填回 fn-knock。详细步骤见 Cloudflare Turnstile

切换和保存

系统设置 → Challenge 选择 PoW 或 Cloudflare Turnstile。选择 PoW 时先设置基础难度,并按需开启不常用地难度;选择 Turnstile 时,站点密钥和密钥必须同时填写,否则前端和后端都会拒绝保存。

站点密钥会下发到公开登录页用于渲染控件;密钥只保存在服务端并用于向 Cloudflare 校验 token。切换回 PoW 后,已有 Turnstile 参数仍保留在配置中,之后重新选择时可继续使用。

修改供应商不会销毁已登录会话,只影响之后进入认证流程的新请求。已经打开的登录页可能仍持有旧挑战,应刷新页面后再测试。

验证方式的边界

  • 验证只保护会经过 fn-knock 登录页的流量。
  • 私网和本地来源默认有本地豁免,不能用局域网结果判断公网验证是否正常。
  • Turnstile 需要浏览器能够访问 Cloudflare 的验证资源;受限网络或拦截规则可能导致控件不显示或验证失败。
  • 修改验证方式后,请用无痕窗口和移动网络完成一次完整登录。

排查

  1. 确认已保存设置,并重新打开登录页。
  2. PoW 提示过期或已使用时,刷新页面取得新挑战;系统时间错误也会导致有效期判断异常。新地区计算过慢时检查不常用地难度。
  3. Turnstile 场景检查 site keysecret key、widget 的 hostname 与真实登录域名是否一致。
  4. 检查登录域名是否已正确解析并使用 HTTPS。
  5. 查看浏览器控制台、请求日志和事件中心中的错误信息。

QQ群:1081609274