免费使用 Google 防注册机验证

准备

要有谷歌账户,去注册 https://www.google.com/recaptcha/admin。我们使用 reCAPTCHA v3

填入你的域名,技巧:
1、可多个域名存放在一个网站下(其实实际是不同网站也没关系)
在这里插入图片描述
2、添加 localhost 便于本地开发测试

使用

我们使用自定义用法。

引入脚本

<!-- Google 防注册机验证 -->
<style>.grecaptcha-badge{display: none;}</style> 
<script src="https://www.recaptcha.net/recaptcha/api.js?render=XXXX"></script>

render 参数是你的客户 appId,注意不是密钥。另外一个样式是隐藏 Google 标签的,自然大多数客户不想看到。

beforeSubmit

一般来说要写入操作的表单都要验证一下(写入的操作)。我们在表单之前获取 Token 并作为参数传到后端,于是我们封装了一个小函数,其中 GoogleReCAPTCHA_siteId 就是客户 appId。

 /**
  * 表单提交之前执行,获取 Token 并作为参数传到后端
  * 
  * @param {*} cb 提交表单的回调函数
  */
function googleReCAPTCHA(cb) {
	grecaptcha.ready(() => {
	    grecaptcha
	    .execute(this.GoogleReCAPTCHA_siteId, { action: "submit" })
	    .then(cb);
	});
}

使用例子:

// 提交表单
global.googleReCAPTCHA((token) => {
  this.feedback.grecaptchaToken = token;// 注意这里加入 token 字段

  xhr.xhr_post("/api/feedback", 
	(j) => {
	  console.log(j);
	  if (j.isOk)
	    this.$Message.success("提交成功!");
	  else
	    this.$Message.fail("提交错误!");
	},
	xhr.toParams(this.feedback)
  );
});

服务端处理

后端就是把传入的 token 再请求 Google 校验是否合法。下面给一个 Java 的例子,大致思路如此。

public boolean check(String token) {
	if (!cfg.isEnable())
		return true;

	if (!StringUtils.hasText(token))
		throw new IllegalArgumentException("非法攻击!客户端缺少必要的参数");

	Map<String, Object> map = Post.api(SITE_VERIFY, String.format("secret=%s&response=%s", cfg.getAccessSecret(), token.trim()));

	if (map == null)
		throw new IllegalAccessError("谷歌验证码服务失效,请联系技术人员");

	if ((boolean) map.get("success")) // 判断用户输入的验证码是否通过
		return true;
	else {
		if ("timeout-or-duplicate".equals(map.get("error-codes")))
			throw new NullPointerException("验证码已经过期,请刷新");

		throw new IllegalAccessError("验证码不正确");
	}
}

POST 请求 Post.api(SITE_VERIFY, String.format("secret=%s&response=%s", cfg.getAccessSecret(), token.trim()));,输入 Token 和密钥两个参数发出去进行校验。然后根据返回的结果是否进行数据的提交,即 SQL 等的保存工作。

小结

Google reCaptcha 挺不错的,无感知验证,不需要用户输入验证码。但实际还是要根据评分再作出判断。参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
更新日志 V726 V50 1、 [修复] 修复多台电脑出现同一机器码可多台电脑登录使用问题 2、 [增加] 模块增加 验证_查询账号或卡号剩余时间()命令 3、 [修复] 修复搜索用户栏切换软件 读不到机器码 到期时间等数据问题 4、 [增加] 企业版、定制版增加自动整理log线程(LogA保留10天、LogIP保留5天、LogStar保留5天) 5、 [修复] 修复725最先版本登录偶尔卡死问题 个人版720~725 1、 [安全] 累计安全方面更新 2、 [优化] 修改每页读取数量为50条数据 3、[修复] 优化设置 批量执行条件 偶尔闪退问题 4、[安全] 增加powershell越权检测及禁用(设置-最下方可关闭) 5、[修复] 修复日在线人数超过一定数量后有几率周期性卡死问题 6、[优化] 优化管理端长时间挂机会造成机器慢的问题 7、[增加] 企业版、定制版增加用户登录关键数据写出(可做到有效破解) 8、[增加] 管理端增加所有详细命令的记录(设置-系统功能-关闭吞吐数据日志(命令文本) 可关闭记录) 个人版719、企业/定制版V50 1、 [优化] 优化代理登录不显示地区问题 2、 [修复] 修复封卡时间显示不对的问题 3、 [增加] 增加限制销售员制卡数量(可限制指定卡类型及每天对应可制作数量)管理端-销售员管理-销售员生成卡限制 4、 [优化] 优化E盾数据库导入机制,完美兼容E盾数据库 5、 [增加] 增加代理端查询不返回用户信息选项(销售员管理-统计权限方面设置-代理权限设置) 6、 [修复] 修复管理端重启问题 7、 [修复] 修复代理端起步价不正常问题 8、 [修复] 辅助_取唯一机器码()重复率过高,推荐 验证_初始化()命令后加一句 辅助_置机器码(辅助_取唯一机器码_MAC版() +辅助_取唯一机器码_硬盘特征版()) 9、 [优化] 优化成品加验证工具,加劫持补丁后会一段时间闪退问题 10、[修复] 修复登录机器码统计错误问题 11、[修复] 修复切换栏目卡顿问题 个人版718、企业/定制版V49(此版本为内测版本未发布) 个人版717、企业/定制版V49 1、 [优化] 优化试用时段之前版本只能当天时段,支持时段跨天 2、 [修复] 修复 管理_读销售员信息()命令 提示服务器连接失败问题 3、 [优化] 优化销售员余额精度 保留小数点后两位 4、 [增加] 增加 管理_修改销售员密码()命令 方便代理自己修改密码 5、 [优化] 优化管理端的稳定性 6、 [修复] 修复代理端添加子代 制卡百分比为不打折的问题 7、 [增加] 增加E盾数据库导入本端口功能 (管理端-更多功能) 8、 [优化] 管理端卡价格、卡时间支持小数输入 9、 [增加] 增加 修改选中卡绑机数量 菜单功能(已用卡、未用卡 界面) 10、[增加] 增加管理端、代理端销售员区域限制登录(管理端-销售员管理-右键修改) 11、[修复] 修复代理可以设置子代折扣过大问题 12、[优化] 代理端将不在可以指定子代理制卡价格,只能设置为上级代理对应卡密的价格或者以上,避免恶意套卡 13、[优化] 优化管理端处理数据性能 14、[增加] 卡类型增加可解绑换机次数,达到限定次数将不再允许解绑换机(修改卡类型后,重新生成才生效) 个人版716、企业/定制版V48 1、 [增加] 天盾管理本地通信模块V7 可实现自定义与管理端数据交互(客户端源码\其他工具_源码)详细可以参考视频教程 2、 [修复] 修复云.dll中 云_解绑、云_解封 等部分函数调用卡死管理端问题 3、 [修复] 修复暂停卡后还可以登录的问题 4、 [优化] 修复返回封卡信息失败问题 5、 [升级] 成品融合工具升级为4.0 新增本机多开选项,修复试用按钮不显示问题 6、 [升级] 自动更新模块整体升级,支持https协议 7、 [修复] 修复手机端封停用户时不生效问题 8、 [修复] 修复发卡微信提示版本过低登录不上问题 9、 [修复] 修复远程变量添加为空后出现读取不到情况 10、[修复] 修复了隐患数据安全BUG,建议升级到最新版本(低于715版本的建议都升级到最新的) 11、[修复] 修复解绑扣点在一些情况会出现失败问题 12、[增加] 增加 验证_读云配置项()功能 可将本地的ini配置文件放到服务器中读取 个人版715、企业/定制版V47 1、 [修复] 修复VMP授权次数计数不准确问题 2、 [增加] 增加VMP次数清空菜单选项 3、 [修复] 修复 设置-按条件封停、批量解封不成功问题 4、 [优化] 优化销售员搜索速度 5、 [修复] 修复 验证_读验证返回数据(

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sp42a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值