谷歌人机验证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" 变为暗色主题
生成token代码
token = grecaptcha.getResponse();
后端部署
在每次验证完成后会生成一个g-recaptcha-response验证码,需要将这个验证码和你的密匙一起发送至:https://www.recaptcha.net/recaptcha/api/siteverify (使用GET方式传参)
传参的格式:secret=xxxxxx&response=xxxxxxx
PHP示例代码:
$data['secret'] = '你的密钥';
$data['response'] = $request['token']; //前台生成的token
$googleVerify = RequestHttpUtility::postUrl('https://www.google.com/recaptcha/api/siteverify',$data,["Content-type:application/x-www-form-urlencoded"]);
// V3返回的成功结果集
// array:5 [
// "success" => true
// "challenge_ts" => "2023-04-12T09:18:22Z"
// "hostname" => "face-mall.com"
// "score" => 0.9
// "action" => "submit"
// ]
下图为需要传递的参数及其含义
secret (必须) 你的secret密匙(第二个密匙)
response (必须) 客户端获取到的 g-recaptcha-response验证码
remoteip (可选) 客户端的ip
接口返回的数据是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及其对应原因
Error code Description
missing-input-secret The secret parameter is missing.
invalid-input-secret The secret parameter is invalid or malformed.
missing-input-response The response parameter is missing.
invalid-input-response The response parameter is invalid or malformed.
bad-request The request is invalid or malformed.
timeout-or-duplicate The response is no longer valid
请求统计
访问:https://www.google.com/recaptcha/admin 可以查看请求的统计
以上是V2版本示例,V3版本后台一样,只是返回的数据不太一样,V3的多了个得分,V3前台显示没有勾选框,通过得分来判断是否为机器人
相关文章:

谷歌人机验证Google reCAPTCHA
reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。 它的使用方式如下如所示,只需勾选复选框即可通过人机验证。 虽然简单…...

VB+ACCESS电脑销售系统的设计与实现
为了使此系统简单易学易用、功能强大、软件费用支出低、见效快等特点,我们选择Visual Basic6.0开发此系统。Visual Basic6.0起代码有效率以达到Visual c的水平。在面向对象程序设计方面,Visual Basic6.0全面支持面向对你程序设计包括数据抽象、封装、对象…...

嵌入式开发:硬件和软件越来越接近
从前,硬件和软件工程师大多生活在自己的世界里。硬件团队设计了芯片,调试了从铸造厂返回的第一批样本,让软件团队测试他们的代码。随着虚拟平台和其他可执行模型变得越来越普遍,软件团队可以在芯片制造之前开始,有时甚…...

亲测:腾讯云轻量应用服务器性能如何?
腾讯云轻量应用服务器性能评测,轻量服务器CPU主频、处理器型号、公网带宽、月流量、Ping值测速、磁盘IO读写及使用限制,轻量应用服务器CPU内存性能和标准型云服务器CVM处于同一水准,所以大家不要担心轻量应用服务器的性能,腾讯云百…...

编程语言,TIOBE 4 月榜单:黑马出现了
TIOBE 4 月榜单已经发布了,一起来看看这个月编程语言排行榜有什么变化吧! C 发展依旧迅猛 在本月榜单中,TOP 20 的变动不大,Python、C、Java 、 C 和C#依然占据前五。甚至排名顺序都和上个月一样没有变动。 同时,Rus…...

基于DSP+FPGA的机载雷达伺服控制系统(二)电源仿真
板级电源分配网络的分析与仿真在硬件电路设计中,电源系统的设计是关键步骤之一,良好的电源系统为电路板 上各种信号的传输提供了保障。本章将研究电源完整性的相关问题,并提出一系列改 进电源质量的措施。 3.1 电源完整性 电源完整性…...

SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
文章目录前言1、分布式情况下如何加锁2、具体实现过程3、测试3.1 一个服务按照多个端口同时启动3.2 使用jmeter进行压测前言 上一篇实现了单体应用下如何上锁,这一篇主要说明如何在分布式场景下上锁 上一篇地址:加锁 1、分布式情况下如何加锁 需要注意的点是: 在上锁和释放…...
优漫动游告诉你:平面设计适合你吗?
优漫动游告诉你:平面设计适合你吗? 什么样的同学可以适应平面设计这份工作呢? 略微有美术基础,当然功底越深越加分。 2.对色彩、形状、结构有一定的接纳力。 3.对图案、人像、字体等因素有审美辨别的能力…...
在Vue中,为什么从 props 中解构变量之后再watch它,无法检测到它的变化?
例如下面这段代码,msg无法被watch import { watch } from vue;export default {props: {msg: String},setup(props) {// 从 props 中解构 msgconst { msg } props;watch(() > msg,(newVal, oldVal) > {console.log(newVal, newVal);console.log(oldVal, old…...

[源码解析]socket系统调用上
文章目录socket函数API内核源码sock_createinet_createsock_allocsock_map_fd相关数据结构本文将以socket函数为例,分析它在Linux5.12.10内核中的实现,先观此图,宏观上把握它在内核中的函数调用关系:socket函数API socket 函数原…...

Jenkins部署与自动化构建
Jenkins笔记 文章目录Jenkins笔记[toc]一、安装Jenkinsdocker 安装 JenkinsJava启动war包直接安装二、配置mavenGit自动构建jar包三、自动化发布到测试服务器运行超时机制数据流重定向编写清理Shell脚本四、构建触发器1. 生成API token2. Jenkins项目配置触发器3. 远程Git仓库配…...

网络编程三要素
网络编程三要素 IP、端口号、协议 三要素分别代表什么 ip:设备在网络中的地址,是唯一的标识 端口号:应用程序在设备中的唯一标识 协议:数据在网络中传输的规则 常见的协议有UDP、TCP、http、https、ftp ip:IPv4和…...

如何编写一个自己的web前端脚手架
脚手架简介 脚手架是创建前端项目的命令行工具,集成了常用的功能和配置,方便我们快速搭建项目,目前网络上也有很多可供选择的脚手架。 一个"简单脚手架"的构成其实非常少,即 代码模板 命令行工具。其中代码模板是脚手…...

计算机网络第1章(概述)
文章目录1.1、计算机网络在信息时代的作用1.2、因特网概述1、网络、互连网(互联网)和因特网2、因特网发展的三个阶段3、因特网的标准化工作4、因特网的组成1.3 三种交换方式1、电路交换(Circuit Switching)2、分组交换(…...

grid布局
一、概述 CSS Grid 布局是 CSS 中最强大的布局系统。与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就意味着它可以同时处理列和行。通过将 CSS 规则应用于 父元素 (成为 Grid Container 网格容器)和其 子元素(成为 Gri…...
博客平台打造出色的个人资料管理与展示:实用技巧与代码示例
个人资料管理与展示是博客平台的重要功能之一。本文将通过设计思路、技术实现和代码示例,详细讲解如何构建出色的个人资料管理与展示功能。结合CodeInsight平台的实践案例,帮助您深入了解个人资料管理与展示的设计原则和技术实现。 一、设计思路 在设计…...
【genius_platform软件平台开发】第九十三讲:串口通信(485通信)
485通信1. 485通信1.1 termios结构1.2 头文件1.3 函数讲解1.3.1 tcgetattr1.3.2 tcsetattr1.4 示例工程1.5 参考文献1.5.1 stty命令1.5.2 命令格式1.5.2 microcom命令1.5.2.1介绍1.5.2.2指令1.5.3 echo命令1.5.3.1 语法1.5.3.2 选项列表1.5.3.3 使用示例1.5.3.4 e cho > 输出…...
JavaScript动画相关讲解
JavaScript是一种非常流行的脚本语言,广泛应用于Web开发、游戏开发、移动应用开发等领域。在Web开发中,动画效果是非常重要的一部分,可以提高网站的用户体验和吸引力。JavaScript提供了一些基本的动画函数,但是这些函数往往不能满…...

InnoSetup制作安装包(EXE)
功能描述 1.666666.war为项目war包,666666.bat为启动war包脚本,通过InnoSetup将它们打包到安装包666666.exe 2.666666.exe安装包安装过程中将666666.bat注册为自启动服务,安装结束自动执行脚本启动项目666666.war --------------------------…...

CASE WHEN函数语句多条件下使用详解
目录 CASE 的两种格式: 简单CASE函数 和 CASE搜索函数 同时配合 SUM 以及 COUNT 方法的使用 ① SUM函数 ② COUNT函数 CASE WHEN函数语句,实现简单CASE函数和CASE搜索函数两种格式。同时配合 SUM以及COUNT方法的使用 CASE 的两种格式: 简…...

HCIP:MPLS静态LSP的配置及抓包
目录 一、MPLS的简单的一些知识点 1.MPLS的概述: 2.MPLS工作原理: 3.MPLS的核心组件: 4. MPLS标签 5.MPLS标签的处理 6.MPLS转发的概述: 7.MPLS的静态LSP建立方式 二、MPLS的静态LSP的实验配置 1.配置接口的地址和配置OS…...

t014-项目申报管理系统 【springBoot 含源码】
项目演示视频 摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,项目信息因为其管理内容繁杂,管理数量繁多导致手工进行…...
相机--RGB相机
教程 RGB--深度相机--激光雷达 RGB相机 原理: 仅捕获红(R)、绿(G)、蓝(B)三通道的彩色图像,输出2D像素矩阵,无深度信息。 核心作用: 2D视觉任务࿱…...

4.2.2 Spark SQL 默认数据源
在本实战概述中,我们探讨了如何在 Spark SQL 中使用 Parquet 格式作为默认数据源。首先,我们了解了 Parquet 文件的存储特性,包括其二进制存储方式和内嵌的 Schema 信息。接着,通过一系列命令,我们演示了如何在 HDFS 上…...

【笔记】Windows 系统安装 Scoop 包管理工具
#工作记录 一、问题背景 在进行开源项目 Suna 部署过程中,执行设置向导时遭遇报错:❌ Supabase CLI is not installed. 根据资料检索,需通过 Windows 包管理工具Scoop安装 Supabase CLI。 初始尝试以管理员身份运行 PowerShell 安装 Scoop…...
React-props
文章目录 前言✅ 一、什么是 props?✅ 二、props 的特点✅ 三、props 的核心细节 & 常见问题1. **props 是新对象还是引用?**2. **函数作为 props:闭包陷阱**3. **默认值 & 解构默认值**4. **props.children 是什么?**5. …...

深入浅出:Spring IOCDI
什么是IOC IOC IOC(Inversion of Control),是一种设计思想,在之前的SpringMVC里就在类上添加RestController和Controller注解就是使用了IOC,这两个注解就是在Spring中创建一个对象,并将注解下的类交给Spring管理,Spr…...

【目标检测】【ICCV 2021】条件式DETR实现快速训练收敛
Conditional DETR for Fast Training Convergence 条件式DETR实现快速训练收敛 代码链接 论文链接 摘要 最近提出的DETR方法将Transformer编码器-解码器架构应用于目标检测领域,并取得了显著性能。本文针对其训练收敛速度慢这一关键问题,提出了一种条…...

Three.js搭建小米SU7三维汽车实战(4)场景搭建
场地搭建 javascript // 导入threejs import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/addons/controls/OrbitControls.js"; // 1. 创建场景 const scene new THREE.Scene(); // 2. 创建相机 const camera ne…...
小程序定制开发:从需求到落地,打造企业专属数字化入口
在移动互联网时代,小程序已成为企业连接用户的核心载体。定制开发因能深度匹配企业需求,正成为各行业数字化转型的优选方案。以下从优势、流程、技术、案例四方面展开,助你快速掌握关键要点。 一、定制开发的核心优势 1. 高度个性化&#x…...