限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

谷歌的诀窍:如何取消验证码

  • 2014-12-23
  • 本文字数:1207 字

    阅读完需:约 4 分钟

谷歌最近研发出一种新方法,该方法能够通过一个简单的方法区分机器人和人,从而取消网站上那些烦人的验证码,并带给用户更好的新体验。

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写,意思是完全自动地区分计算机和人类的图灵测试。很多年来,互联网上的注册、验证等都是通过那些独特的验证码来防止机器人对服务器进行暴力占用。通过扭曲的验证码符号,它可以防止恶意破解密码、恶意刷票、论坛灌水等等不太正常的行为。同时可以防止一些非正规用户对程序进行暴力破解。

然而,验证码带给真正人的用户体验往往是非常烦人而且繁杂的。为了上一个论坛网站,用户需要首先通过验证码注册账户,接着通过验证码登录网站,最后通过验证码回复用户所感兴趣的帖子。同时,过度扭曲的验证码往往很不容易识别出来,从而增加了用户尝试的次数,更加让这个过程变得臃肿。为了解决这个问题,谷歌的相关人员前后进行多次研究,并且提出了相关方法。

在一年前,谷歌提出了一种改进方法,即视觉或者视屏的迷宫,叫做“reCAPTCHA”。这种方式在图灵测试中对人类和机器人的区别率达到了 99.8%,这是一种非常有效的改进。然而,在“reCAPTCHA”方法提出之后,相关人员又对机器人识别做出了更加智能的改进,从而让机器人适应了新的验证方式,这时,现有的验证码就无法再做到有效区别机器和人了。

因此,谷歌在最近提出了一种新的分析方式来判别人类还是机器人。他们改进了这种方法,让那些使用验证码的网站可能再也不需要用户来输入一个验证码了。用户只需要点击一个复选框(如下图)即可完成验证工作。如果这样还不能判定是机器人还是人类,那么这种方式会使用老的 reCAPTCHA 方法来验证。根据谷歌内部透露,早期使用新的 reCAPTCHA 的用户群体,在使用新方式的时候,约 60% 的 WordPress、80% 的 Humble Bundle 用户只是用了复选框点击判断,并没有看到老的 reCAPTCHA 界面。

这种方式的具体原理是在用户使用网络的时候就开始收集大量信息,包括 IP 地址、Cookies 等,然后通过这些数据来判定用户现在与过去的使用方式是否一致,从而确定到底是不是机器人。谷歌还会根据用户鼠标在复选框上的移动方式、点击方式等细微的地方,确定人与机器人的区别。还有一些其他的细微变量也帮助了谷歌判断,但是目前谷歌没有透露,以防止那些机器人的软件破解这种新的方式。

当需要使用这种新的验证方式的时候,网站开发者需要从谷歌获取一个密码对。新的 reCAPTCHA API 同时为移动设备提供了一套自动、清晰的组件,该 API 禁用了 JavaScript 来防止对信息的盗取。大部分现行的浏览器,像 Chrome 3+、Firefox 3+、IE 7+、Opera 10.10+ 以及 Safari 4+ 都已支持该 API。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-12-23 02:529934
用户头像

发布了 268 篇内容, 共 131.8 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

Kubernetes网络模型分析

王玉川

Kubernetes 云原生 网络 iptables cluster

Kubernetes架构解析

乌龟哥哥

三周年连更

上线控制台,降低使用门槛|Higress 1.0.0 RC 版本发布

阿里巴巴云原生

阿里云 云原生 Higress

Shell脚本实战:Consul 服务注册和注销的最佳实践

小毛驴的烂笔头

Linux Shell

世界读书日|华为阅读联合40余家伙伴推出精品书单

最新动态

CnosDB成为首个支持sqllogictest的时序数据库,稳定性与可靠性再升级

CnosDB

数据库 开源 时序数据库 CnosDB

百度平地起“雷”,突然爆出的QPS数据意味着什么?

脑极体

大模型

Matlab实现光伏发电电池模型

Shine

三周年连更

如何在 Linux 中查找文件所有者?

wljslmz

三周年连更

Android调用WebService

芯动大师

HTTP WebService 三周年连更

2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 集合 或者 B 集合中 使得 A 集合和 B 集合不为空,并且 average(A) == aver

福大大架构师每日一题

golang 算法 rust

如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!

Java架构历程

三周年连更

极客时间「大师课·深度剖析 RocketMQ5.0」上线啦,欢迎免费领取!

阿里巴巴云原生

阿里云 RocketMQ 云原生

TestNG 中使用 Guice 来进行依赖注入

HoneyMoose

【深入浅出Spring原理及实战】「源码调试分析」深入源码探索Spring底层框架的的refresh方法所出现的问题和异常

码界西柚

spring NPE 源码剖析 4月日更 问题分析

关于容器云的三种网络设计

穿过生命散发芬芳

容器云 三周年连更

缓存的处理步骤

阿泽🧸

缓存 三周年连更

Shell脚本从入门到精通

袁袁袁袁满

三周年连更

《精进3:找到你的潜在生态位》

石云升

读书笔记 三周年连更

INFINI 产品更新|Console v1.0 版本正式发布

极限实验室

elasticsearch console Gateway infini 极限网关

音视频八股文(4)--ffmpeg常见命令(3)

福大大架构师每日一题

音视频 ffmpeg

数字未来:世界正走向新的“破茧时刻”

脑极体

华为

学会 Go select 语句,轻松实现高效并发

陈明勇

Go golang 高并发 select 三周年连更

python时间序列预测之Holt-Winters

AIWeker

Python 机器学习 时间序列 三周年连更

Koordinator 一周年,新版本 v1.2.0 支持节点资源预留,兼容社区重调度策略

阿里巴巴云原生

阿里云 开源 云原生 Koordinator

测试需求平台8-Arco组件实现产品增改需求

MegaQi

测试平台开发 三周年连更 AcroVue

发现了一个对公有云资源进行规范管理的方法

cynthia

公有云 云管平台 安全合规

基于 Amazon SageMaker 构建细粒度情感分析应用

亚马逊云科技 (Amazon Web Services)

机器学习 Amazon SageMaker

职业规划:如何面对“程序员失业”?| 社区征文

ninetyhe

人工智能 AI 大龄程序员 三周年征文

R 编程并发的基础知识有哪些?

海拥(haiyong.site)

三周年连更

精进云原生 - Dubbo 3.2 正式发布

阿里巴巴云原生

阿里云 云原生 dubbo

谷歌的诀窍:如何取消验证码_Google_张天雷_InfoQ精选文章