475 字
2 分钟
基于Cap-Pow人机验证的分支One-Pow,提供了基础的人机识别和安全防护。
2025-08-27
上一篇文章我介绍了什么是Cap-Pow和开源的PHP服务端Cap-Pow Server for PHP,本文便给大家带来了一个基于Cap-Pow的分支:One-Pow。One-Pow提供了一些基础的行为验证人机识别和防止爆破的安全防护。
One-Pow对比Cap-Pow主要更新了以下功能,安全性有了更高的提升。
- 更新了更好看的组件UI和交互动画
- FNV-1a 算法由32位换为128位
- 将token参与POW运算,增强重放攻击防护
- 新增收集行为数据分析,具备一定的人机识别访问
- 新增风险分析返回不同的计算难度
- 新增频繁请求拦截
- 轻量级的机器学习模型(行为风险得分+机器学习评分进行综合评分)
- 自动标记高风险IP
使用One-Pow可以无需自己搭建后端,您可以直接访问官网,按照说明集成到项目内即可,例如:
<!--导入组件JS--><script src="https://cha.eta.im/static/js/pow.min.js"></script>
<!--添加验证组件--><pow-widget id="pow" data-pow-api-endpoint="https://cha.eta.im/"></pow-widget>
验证通过后,您可以将返回的token信息通过表单一起发送到后端,后端再通过访问我们的API接口验证token是否有效,例如:
前端:
const widget = document.querySelector("#pow");
widget.addEventListener("pow:success", async function (e) { const token = e.detail.token; // 发送token到您的服务器进行验证 const result = await fetch('"https://cha.eta.im/api', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token }) });
const validation = await result.json(); console.log("验证结果:", validation);});
后端:
<?php// 解析请求数据$input = file_get_contents('php://input');$data = json_decode($input, true);
// 例如您已经封装了一个curl请求方法$data = [ "token" => $data['token'] ?? null;];$result = Request::sendRequest("https://cha.eta.im/api/validate", [ 'method' => 'POST', 'headers' => ['Content-Type' => 'application/json', 'body' => json_encode($data)]);
if($result['success'] ?? false){ echo json_encode(["success"=>true,"message"=>"验证成功"]);}else{ echo json_encode(["success"=>false,"message"=>"验证失败"]);}
至此您已经完成了One-Pow的全部验证流程。
希望此项目能帮助到您!
基于Cap-Pow人机验证的分支One-Pow,提供了基础的人机识别和安全防护。
https://www.tr0.cn/761/