Google reCAPTCHA ----------验证码

现有验证码的产品形态调研范围如下,基本涵盖了比较主流的验证码平台:

  • Google reCAPTCHA
  • 极验
  • 阿里云
  • 腾讯云
  • 点触
  • 网易易盾
  • 螺丝帽
  • FunCaptcha

产品背景

‍‍reCAPTCHA起初是由CMU(卡耐基梅隆大学)设计,将OCR(光学自动识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片。那些网站的用户在正确识别出这些文字之后,其答案便会被传回CMU。这样一来既起到了验证码的效果,又可以帮助进行古籍的数字化工作(可以称为人工OCR)。

‍‍reCAPTCHA在2009年被Google 收购,‍‍Google让reCAPTCHA里显示Google街景的图片。这样经常会从街景里提取如街道名称和交通标志等数据,向Google地图里添加商铺地址和位置等有用信息。

再往后,新版reCAPTCHA又进化为noCAPTCHA。人工智能飞速发展,据说已经能够解决99.8%的图片字符型验证码,因此扭曲的文本验证方式也不再是一个可靠的方法。noCAPTCHA只提供了一个复选框,里面写着“我不是机器人”。当你打钩之后,Google就能利用“风险分析引擎”进行一系列无缝检查,以此来判断你是否是真人。

‍‍如果noCAPTCHA认为你是真人,那就不用再做什么了;否则会要求你填一个传统的CAPTCHA字符串或更先进的字符串,比如门牌号,或从一组图片中挑选出正确的图片。‍‍

 

 

 

 

复选框看似更简单,但背后确是Google强大的机器学习技术。基本的原理就是先检测客户端环境,判断使用者是否处于人类的操作环境中。如果检测结果在容错范围内则直接通过测试,否则弹出验证码进行二次认证。据统计reCAPTCHA的技术可以大大提高识别准确率,总共可以有效节约用户每天50000小时的上网时间。

reCAPTCHA17年3.13日又升级到了Invisible reCAPTCHA,顾名思义,“隐形验证码”。这样一来,连复选框都不会出现,对普通用户完全透明,用户体验又更进一步。页面底部将展示一个logo注明当前页面使用到此技术(当然不想要也可以将其隐藏)。

接入方式官网目前产品主要有两款:reCAPTCHA V2Invisible reCAPTCHAreCAPTCHA V2便是noCAPTCHA的最新版(V1版据说官方已不再维护),嵌入式复选框。Invisible reCAPTCHA为之前提到的隐形验证码。在此只关注它的接入方式(其实和reCAPTCHA V2类似)。
其中第1种比较简单,官网的说法是“The easiest method”——其实就是在已有的按钮元素上添加一些属性以绑定reCAPTCHA,由点击自动触发。示例如下:

<html><head><title>reCAPTCHA demo: Simple page</title><script src="https://www.google.com/recaptcha/api.js" async defer></script><script>function onSubmit(token) {document.getElementById("demo-form").submit();}</script></head><body><form id='demo-form' action="?" method="POST"><button class="g-recaptcha" data-sitekey="your_site_key" data-callback='onSubmit'>Submit</button><br/></form></body>
</html>

说完第1种,再来看看第2种:自己通过JS代码的方式控制一些属性的传入。示例如下:

<html><head><title>reCAPTCHA demo: Explicit render after an onload callback</title><script type="text/javascript">var onSubmit = function(token) {console.log('success!');};var onloadCallback = function() {grecaptcha.render('submit', {'sitekey' : 'your_site_key','callback' : onSubmit});};</script></head><body><form action="?" method="POST"><input id='submit' type="submit" value="Submit"></form><script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"async defer></script></body>
</html>

其中需要注意的是:由于顺序执行的原因,onloadCallback要写在前面,这样最后才能保证onload可以接收到
onloadCallback(否则 async and defer 也是白用了)

When your callback is executed, you can call thegrecaptcha.render
method from the Javascript API.Note: your onload callback function must be defined before the reCAPTCHA API loads. To ensure there are no race conditions:

  • order your scripts with the callback first, and then reCAPTCHA
  • use the async and defer parameters in thescript tags

第2种方式,代码量相对第1种多了许多,但是却做到了“不污染已有的html元素”
第3种方式,是分配一块页面空间给到reCAPTCHA,从而固定其展示的位置。因为Invisible reCAPTCHA的Invisible并不是绝对的——你可以通过调参使其visible。那么这样就可以秀出“我们是有用验证码的”。

与第2种相比,同样没有污染已有元素,但是更加customised。示例如下:

<html>
<head>
<script>function onSubmit(token) {alert('thanks ' + document.getElementById('field').value);}function validate(event) {event.preventDefault();if (!document.getElementById('field').value) {alert("You must add text to the required field");} else {grecaptcha.execute();}}function onload() {var element = document.getElementById('submit');element.onclick = validate;}
</script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body><form>Name: (required) <input id="field" name="field"><div id='recaptcha' class="g-recaptcha"data-sitekey="your_site_key"data-callback="onSubmit"data-size="invisible"></div><button id='submit'>submit</button></form>
<script>onload();</script>
</body>
</html>

注意这里的invoke不是使用render,而是execute。具体的api调用如下:

服务端的地方就不讨论了,都大同小异:无非是需要特定的密钥,结合前端callback的内容做二次验证。原因是前端可以被绕过。

验证流程如下(这里借用网易易盾流程图。其实都差不多):

 

总结

同国内验证码产品相比,Google reCAPTCHA在接入上,并不强调产品的形态(点选 、滑动等),而是侧重接入的灵活程度。具体的形态由“风险分析引擎”得出,动态展示给调用方。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53073.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于captcha验证码演示

转载&#xff1a;https://blog.csdn.net/dayonglove2018/article/details/106612549 import com.wf.captcha.SpecCaptcha; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springfr…

使用reCAPTCHA实现验证码

文章目录 HTML代码JS代码Java代码项目开源地址参考资料 HTML代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>登录</title><link rel"stylesheet" type"text/css" href"css/json-v…

手把手教你验证码检验的登录

在网站实际应用过程中&#xff0c;为了防止网站登录接口被机器人轻易地使用&#xff0c;产生一些没有意义的用户数据&#xff0c;所以&#xff0c;采用验证码进行一定程度上的拦截&#xff0c;当然&#xff0c;我们采用的还是一个数字与字母结合的图片验证码形式&#xff0c;后…

如何识别高级的验证码

http://sebug.net/paper/pst_WebZine/pst_WebZine_0x02/html/PSTZine_0x02_0x09.html Ph4nt0m Security TeamIssue 0x02, Phile #0x09 of 0x0A|---------------------------------------------------------------------------| |-----------------------[ 如何识别高级的验证码…

hcaptcha 我是人类验证码怎么跳过怎么验证自动识别

相信这个验证码很多人都见过&#xff0c;这个叫hcaptcha验证码 在网页上偶尔出现&#xff0c;提示需要你证明“我是人类” 这种验证码与谷歌的reCaptcha有异曲同工之处&#xff0c;但是其实hcaptcha与recaptcha是完全不同的产品&#xff0c;不是同一个公司出品的。 这种hcapt…

手把手教你识别FunCaptcha验证码

今天&#xff0c;我们将专注于FunCaptcha&#xff0c;这是一种独特而具有挑战性的CAPTCHA类型&#xff0c;在整个网络上越来越流行。我们将深入探讨FunCaptcha是什么&#xff0c;不同类型的FunCaptcha挑战&#xff0c;如何使用CapSolver解决它们等等。 什么是FunCaptcha&#…

基于openai chatgpt和embeddings制作私有知识库聊天机器人

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、原理、流程二、制作预料库三、制作问答功能总结 如果有问题可以联系我**&#xff1a;https://gitee.com/xiaoyuren/gpt3 前言 在当今信息爆炸的时代&#…

基于 Quivr 搭建个人知识库

目录 Quivr介绍 Quivr特性 Quivr演示 Demo with GPT3.5: Demo of the new version&#xff1a; Quivr实战 Quiv 使用的主要技术 Quiv 实践依赖 创建Supabase项目 部署Quiv项目 第一步&#xff1a;现在源码 第二步&#xff1a;设置环境变量 第三步&#xff1a;执行sql 第…

标书打印分册小技巧

标书打印出来后&#xff0c;一般都有很多本&#xff0c;去打印店胶装标书时&#xff0c;需要把每一本标书分出来&#xff0c;黑帽大师用便签纸就能方便的分出标书。 把便签纸贴在每本标书的最后一页上&#xff0c;这样就能方便的分出每一本了。

学校计算机维护投标书,信息化系统硬件及应用系统安全运维服务投标书范本

这是一份信息化系统硬件及应用系统安全运维服务投标书范本&#xff0c;含运维服务方案&#xff0c;word格式&#xff0c;可编辑&#xff0c;有需要的朋友可以参考学习。 信息化系统硬件及应用系统安全运维服务 本次服务范围为XX局信息化系统硬件及应用系统&#xff0c;各类软硬…

招投标小程序开发功能及源码

一般获取招投标信息的渠道主要有三种&#xff0c;一&#xff0c;来源于官方、正规的政府网站、公共资源交易中心等&#xff1b;二&#xff0c;能提供针对性的招投标信息平台&#xff1b;三是通过个人的人脉资源来获取项目信息。今天我们重点讲下招投标平台怎么运营的&#xff0…

python制作标书_爬取比比网中标标书,并保存为PDF格式文件

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 以下文章来源于CSDN&#xff0c;作者嗨学编程 python开发环境 python 3.6 pycharm import requests import parsel import pdfkit import time 相关模块pip安装即可 …

python制作标书_Python爬取比比网中标标书并保存成PDF格式

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 python开发环境 python 3.6 pycharm requests parsel pdfkit time 相关模块pip安装即可 目标网页分析 1、先从列表页中获取详情页的URL地址 是静态网站,可以直接请求…

第一次写标书

由于工作需要开始写起标书。前后大概花了五天时间。 经过自我学习和老师指导&#xff0c;知道了一件事情&#xff0c;不管做什么&#xff0c;其实都是能够有所学习的。 而学习&#xff0c;为了有所收获&#xff0c;需要用心再去体会每一个过程&#xff0c;并记录下来&#xf…

小程序投标书_快来学习招投标小技巧!中标率提高50%(建议收藏)

99%的投标人使用【建企同盟APP】都中标了&#xff01; 建企同盟APP 招标信息不遮挡 订阅推送零费用 从保证中标的因素来看&#xff0c;三个因素最为重要&#xff0c;首先是关系&#xff0c;其次是能力&#xff0c;最后才是价格。关系指与用户的关系&#xff0c;既有最终用户又包…

小程序投标书_程序员接私活常用哪些平台?

给大家推荐国内外几个接外包比较靠谱的平台&#xff0c;相对来说规模和专业性都还不错。 想要接外包或者积累行业人脉的小伙伴都可以收藏一波&#xff1a; 国外篇 如果打算接国外的软件外包&#xff0c;首先以下几点能力需要提前掌握&#xff1a; 基本的英语沟通能力(能够基本沟…

重磅:AI 的 “iPhone 时刻” 已经到来

大家好&#xff0c;我是校长。 上周英伟达 CEO 黄仁勋在 GTC 大会主题演讲火爆了全网。 一起来看看黄仁勋说了什么。 英伟达 CEO 黄仁勋在 GTC 大会主题演讲上开场时这么说&#xff1a; “近四十年来&#xff0c;摩尔定律一直是引领计算机行业动态发展的重要规律&#xff0c;而…

AI内容生成检查器

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 AI进行内容生成已经是是当下的人们话题&#xff0c;那么怎么判断文本的内容是不是AI生成的呢&#xff1f;AI 生成的句子将被突出显示&#xff0c;目前工具可以检测…

ChatGPT生成文本检测器-task5

#### 任务五&#xff1a;使用TFIDF特征和XGBoost完成训练和预测 说明&#xff1a;在这个任务中&#xff0c;你需要使用TFIDF特征和XGBoost算法完成训练和预测&#xff0c;进一步提升文本分类的性能。实践步骤&#xff1a; 准备TFIDF特征矩阵和相应的标签。划分训练集和测试集。…

ChatGPT生成文本检测器-task2

#### 任务二&#xff1a;对数据集字符进行可视化&#xff0c;统计标签和字符分布 说明&#xff1a;在这个任务中&#xff0c;你需要使用Pandas库对数据集的字符进行可视化&#xff0c;并统计数据集中的标签和字符的分布情况&#xff0c;以便更好地理解数据集。实践步骤&#x…