WHMCS技巧:配置reCAPTCHA

2019年5月29日 | 分类: 【源码】

【介绍】

WHMCS7.7支持三种验证方式:
1. Default:内置程序生成随机5字符的验证码
2. reCAPTCHA v2 (Google’s reCAPTCHA system):需要勾选单选框
3. Invisible reCAPTCHA:隐藏在后台,不需要用户操作。

相较之下,第三个方案比较人性化。

概念:https://amon.org/captcha

【申请】

官网:https://www.google.com/recaptcha/admin

创建:点击按钮【+】添加站点。

部署:将以下2个参数在WHMCS后台填入

reCAPTCHA Site Key
reCAPTCHA Secret Key

【接入】

参考:https://phpkishan.blogspot.com/2018/11/recaptcha-v3-example-in-php.html
参考:https://blog.csdn.net/C_jian/article/details/84191095
源码:https://drive.google.com/file/d/1oJFPooqn4B5Bjk82g5wWG0TGOSQnEcDa/view

【魔改】

考虑到reCAPTCHA的关键文件可能无法访问,可以修改其位置。

参考:https://www.mmuaa.com/post/a0dc4687b47a53a7.html

reCaptcha是Google公司的验证码服务,方便快捷,改变了传统验证码需要输入n位失真字符的特点。

reCaptcha在使用的时候,只需要点一下复选框,Google会收集一些鼠标轨迹、网络信息、浏览器信息等等,依靠后端的神经网络判断是机器还是人,绝大多数验证会一键通过,无需像传统验证码一样。

reCaptcha使用了google.com的域名,可以通过使用Google官方的反向代理实现访问。

1. 获取代码:使用Google账号,登录账号:https://www.google.com/recaptcha/admin
2. 在register a new site表单里填写验证名(随便命名)、域名(你要使用reCaptcha 的域),type选择v2,下面的钩钩打上,然后Register即可注册。
3. 打开你刚刚创建的验证,找到Keys,记住你的site-key和select
4. 在客户端和服务端部署。

客户端部署代码:在你要添加reCaptcha的页面添加script标签:

<script src='//recaptcha.net/recaptcha/api.js'></script>

在要显示reCaptcha验证框的地方添加div容器:

<div class="g-recaptcha" data-sitekey="【site-key】"></div>

这样就完成了客户端的部署。

服务端部署代码:

服务端只需要将客户端点击验证码后传回的g-recaptcha-response值和ip以及secret传给Google的API:https://recaptcha.net/recaptcha/api/siteverify 即可。

对应的参数如下表(使用GET方式传参):

secret (必须) 你的secret
response (必须) 客户端获取到的 g-recaptcha-response
remoteip 客户端的ip

接口返回的是json数据,其中success字段为true时,表示验证通过。如果验证未通过,error-codes字段会以数组的形式给出错误说明。