Altcha
插件/ 2026-09-05/0/ 编辑
Altcha
由 Typecho-Turnstile 插件爆改而来,将验证后端从 Cloudflare Turnstile 替换为 ALTCHA 工作量证明(Proof-of-Work)。
下载
与 Turnstile 的区别
| | Turnstile | Altcha (本插件) |
|---|
| 验证方式 | Cloudflare 远程校验 | 本地工作量证明 (PoW) |
| 外部请求 | 需访问 Cloudflare | 无任何外部请求 |
| 隐私 | 访客数据提交给 Cloudflare | 不收集任何数据 |
| 部署要求 | 需注册 Cloudflare 获取密钥 | 零配置,启用即用 |
| 机器人成本 | — | 每次提交需消耗真实算力解题 |
工作原理
- 浏览器从
/action/altcha 获取由 HMAC 签名的一次性挑战(PBKDF2 工作量证明); - 访客浏览器用 Web Worker 求解挑战(耗时约 0.1 ~ 2 秒,取决于难度设置);
- 提交表单时附带解答,服务端验证 HMAC 签名与工作量,无需任何外部调用;
- 挑战带有效期(默认 15 分钟),且每个已通过的解答会被记录到数据库防重放表
{前缀}altcha_used(主键抢占,并发安全),同一解答只能成功提交一次,过期记录自动清理;启用插件时自动建表,禁用时自动删表,兼容 SQLite / MySQL / PostgreSQL。多机共享同一数据库的部署同样生效。
防重放表写入异常时插件会放行请求并在 PHP error_log 记录警告(fail-open),避免存储故障阻断全部评论;若日志中出现相关报错,请尝试重新启用插件以重建数据表。
环境要求
- Typecho 1.3+
- PHP 8.1+(启用时强制校验)
开源地址
前往Github