使用Google reCAPTCHA进行人机验证
reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。
它的使用方式如下如所示,只需勾选复选框即可通过人机验证。
虽然简单但效果很好,因为Google会收集一些浏览器信息,网络信息,鼠标轨迹等信息,最后通过神经网络判断是否为机器人。而且reCAPTCHA还可以记录并分析使用该人机验证的请求次数,并对可以的请求进行统计和监管。
一些准备工作:
需要一个谷歌账号没有的先去注册一个
reCAPTCHA官网:https://developers.google.com/recaptcha/(需要科学上网)
使用reCAPTCHA需要创建密匙对,创建密匙:https://www.google.com/recaptcha/admin
首先先创建密匙
进入 https://www.google.com/recaptcha/admin
创建成功后会产生一对密匙
前端部署
在你需要添加reCAPTCHA的界面添加script标签
<script src="https://www.recaptcha.net/recaptcha/api.js"></script>
然后再你需要显示reCAPTCHA验证框的地方添加
<div class="g-recaptcha" data-sitekey="你的网站密匙"></div>
可以设置验证框的主题默认主题为light,可以添加属性:data-theme="dark" 变为暗色主题
方式一、自动将请求绑定到按钮
1、加载JavaScript API
<script src="https://www.google.com/recaptcha/api.js"></script>
2、添加一个回调函数来处理令牌
<script>function onSubmit(token) {document.getElementById("demo-form").submit();}</script>
3、向 html 按钮添加属性
<button class="g-recaptcha" data-sitekey="reCAPTCHA_site_key" data-callback='onSubmit' data-action='submit'>Submit</button>
方式二、以编程方式调用
为了大家方面理解,如上图,可以先看看我做的一个demo
:recaptcha
1、用 sitekey(站点秘钥) 加载 JavaScript API
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
2、添加一个回调函数来处理令牌
<script>function onSubmit(token) {document.getElementById("demo-form").submit();}</script>
3、在你需要进行人机验证的操作上调用 grecaptcha.execute 方法
reCAPTCHA v3 引入了一个新概念——动作如:( action: ‘submit / login’ )。当你在每一个执行 reCAPTCHA 的地方指定一个动作名称时,你启用了以下新特性:
1、管理控制台中前10个操作的详细数据分解
2、Adaptive risk analysis based on the context of the action, because abusive behavior can vary.
操作可能只包含字母数字字符、斜线和下划线。
<script>function onClick(e) {e.preventDefault();grecaptcha.ready(function() {grecaptcha.execute('reCAPTCHA_site_key', {action: 'submit'}).then(function(token) {// Add your logic to submit to your backend server here.});});}</script>
注意:
尝试将执行调用挂钩到有趣的动作,如注册、密码重置、购买或播放。
你可以使用ajax提交,也可以把 token 插入到 HTML 的 input hidden 隐藏框,一起提交到后端进行校验。
4、将令牌(token)立即发送到网站后端,并发送要验证的请求。
后端部署
在每次验证完成后会生成一个g-recaptcha-response验证码,需要将这个验证码和你的密匙一起发送至:https://www.recaptcha.net/recaptcha/api/siteverify (使用GET方式传参)
传参的格式:secret=xxxxxx&response=xxxxxxx
下图为需要传递的参数及其含义
接口返回的数据是json格式
{"success": true|false,"challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)"hostname": string, // the hostname of the site where the reCAPTCHA was solved"error-codes": [...] // optional
}
验证通过后success返回的值为“true”,如果验证失败则会返回error-code,下面为error-code及其对应原因
使用Google reCAPTCHA进行人机验证相关推荐
- 浅谈如何使用Google reCAPTCHA进行人机验证
reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用.它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证. 它的使用方式如下如所示,只需勾选复 ...
- Google 人机验证(reCaptcha)无法显示解决方案
Google 人机验证无法显示解决方案 第一步 安装插件 Chrome/Edge 电脑版 Firefox 电脑版 第二步 配置插件 原理 参考文章 前言:为了防止机器人攻击,国外很多网站都使用了 Go ...
- GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(可解决大多数 CSP 问题)
前言: 为了防止机器人攻击,国外很多网站都使用了 Google reCaptcha 验证码.reCaptcha 对于国外用户非常的友好,但是-对于国内用户就不怎么友好了.究其原因,则是国内网络全线屏蔽 ...
- 谷歌人机验证Google reCAPTCHA
reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用.它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证. 它的使用方式如下如所示,只需勾选复 ...
- GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(转)
前言: 为了防止机器人攻击,国外很多网站都使用了 Google reCaptcha 验证码.reCaptcha 对于国外用户非常的友好,但是-对于国内用户就不怎么友好了.究其原因,则是国内网络全线屏蔽 ...
- 解决Google人机验证reCaptcha失效问题
安装Redirector插件 Firefox浏览器 1. 下载Firefox浏览器,并安装插件 2. 打开Redirector插件的界面 3. 弹出如下界面 4. 按照如下形式填写 Chrome浏览器 ...
- 在vue中使用Google Recaptcha验证
我们最近的项目中需要使用谷歌机器人验证,这个最主要的就是要有vpn,还需要有公司申请的google账号(自己申请的没用)用于商用的,利用这个账号去申请秘钥,然后有了秘钥之后就可以了. 部分代码如下: ...
- 解压bz2;kaggle(google人机验证);pycharm加上参数运行;no module named ‘torch_sparse;像这种在kaggle中运行程序报错—— invalid syn
https://jingyan.baidu.com/article/86fae3461437c53c48121a50.html 关于kaggle一些问题解决办法 - Y-flower - 博客园 Go ...
- 避免跳出谷歌人机验证 reCAPTCHA界面的解决方法
第一次遇到跳出谷歌人机验证 reCAPTCHA界面只要点击窗口就没有问题了,心里还感叹了下谷歌能把人机验证这事做的这么好,不错.然而这个窗口还是会不断调出来扰人= =,导致使用Chrome浏览器搜索变 ...
最新文章
- 小学计算机制作表格教案,小学信息技术《表格的制作》教案
- 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
- 计数排序vs基数排序vs桶排序
- 高性能滚动scroll(防抖和节流)
- 【算法】第76题 Minimum Window Substring
- 【评测通知】中国计算语言学大会(CCL 2021)发布5项技术评测任务
- Hadoop组件启动的三种方式及配置SSH无密码登入
- 2021蓝桥杯C/C++B组真题
- java 获取上周开始时间和结束时间,上上周开始和上上周结束时间
- cerebro 通过https访问ES docker集群
- java输出GPA_请完成下列Java程序:实现换算GPA,对于学生学习的每一门课程,都输入两个..._考试资料网...
- 【Fracturing amp; Destruction】Unity3D的物体爆裂、炸裂、碎裂效果
- USB 协议分析之 HID 设备
- mysql 自顶向下递归查询 使用next字段查子集 单链表查询
- mysql开发与实践_MySQL开发与实践
- windows下php下载与安装
- Java实现 LeetCode第30场双周赛 (题号5177,5445,5446,5447)
- 建站操作——WordPress添加用户注册与登录功能(三种方法)
- 大数据调度系统为什么选型Apache DolphinScheduler ?
- 如何减轻偏头痛的症状