hcaptcha
又被人盯上了,来攻击我的网站刷流量,这次防御的手段打算加上验证码
注册
- 注册的话自己随意就好有什么用什么
-
验证流程
- 用户先完成验证码,当表单提交时,会带有一个令牌
- 提交表单后,后端收到表单内的令牌,向hcaptcha服务器验证
- 根据服务器返回的结果进行响应
- 流程其实很简单,当然github上也有开源的同类产品
部署
- 注册以后会有免费的版本,正常会获得一个账户级密钥和站点密钥,站点密钥是部署在前端验证码上,账户级密钥是用于向hcaptcha服务器发送验证请求使用的
<html>
<head>
<title>hCaptcha Demo</title>
<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
</head>
<body>
<form action="" method="POST">
<input type="text" name="email" placeholder="Email" />
<input type="password" name="password" placeholder="Password" />
<div class="h-captcha" data-sitekey="站点密钥"></div>
<br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
- 当前端的请求发送到后端,就需要向hcaptcha服务器发送验证请求
curl https://api.hcaptcha.com/siteverify \
-X POST \
-d "secret=YOUR-SECRET&remoteip=CLIENT-IP&response=CLIENT-RESPONSE"
请勿使用 GET 请求调用 /siteverify。请使用 POST 请求,并在表单正文中传递参数,而不是 URL。
- YOUR-SECRET : 是您在仪表板中生成的站点密钥(“ES_...”)
- CLIENT-IP : 是客户端的 IP 地址。虽然
remoteip
并非严格要求,但提供此信息有助于提高验证准确性 - CLIENT-RESPONSE : hCaptcha SDK返回给客户端的token
Siteverify 错误代码
错误代码 | 描述 |
---|---|
missing-input-secret | 您的密钥丢失 |
invalid-input-secret | 您的密钥无效或格式错误 |
missing-input-response | 缺少响应参数(验证令牌) |
invalid-input-response | 响应参数(验证令牌)无效或格式错误 |
expired-input-response | 响应参数(验证令牌)已过期。(默认120秒) |
already-seen-response | 响应参数(验证令牌)已经被验证过一次 |
bad-request | 请求无效或格式错误 |
missing-remoteip | 缺少 remoteip 参数 |
invalid-remoteip | remoteip 参数不是有效的 IP 地址或盲值 |
not-using-dummy-passcode | 您使用了测试站点密钥,但尚未使用其匹配的密钥 |
sitekey-secret-mismatch | 站点密钥未使用提供的密钥进行注册 |
- 具体更详细的配置内容参考配置
验证
- 在评论表单中加入了验证码
- 在下载文件的位置加入验证码
最后一次更新于2025-04-27 08:55
0 条评论