reCAPTCHA 识别是否机器行为的工具

reCAPTCHA 识别是否机器行为的工具

[摘要] reCAPTCHA 项目是由卡内基梅隆大学所发展的系统,主要目的是利用 CAPTCHA 技术来帮助典籍数字化的进行,这个项目将由书本扫描下来无法准确的被光学文字辨识技术(OCR, Optical Character Recognition)识别的文字显示在 CAPTCHA 问题中,让人类在回答 CAPTCHA 问题时用人脑加以识别 –维基百科

最近访问站点的时候经常遇到机器识别的问题,一些网站会根据用户行为判断出是否是真实的人为请求或者来自与机器的爬虫访问。
比如访问某个cloudservice的blog时,首页就会使用 reCAPTCHA 进行机器与人的判定

recaptcha
recaptcha

访问google时也遇到了类似的 reCAPTCHA 的判定,我也是醉了
recapcha-google

google-hints-recaptcha
google-hints-recaptcha

google的提示:
关于此网页

我们的系统检测到您的计算机网络中存在异常流量。此网页用于确认这些请求是由您而不是自动程序发出的。为什么会这样?
如果 Google 自动检测到从您的计算机网络发出的请求可能违反服务条款,就会显示此网页。这些请求一旦停止,此阻断即会失效。在此期间,如果您能破解上述人机识别系统,就可以继续使用我们的服务。
该流量可能是由恶意软件、浏览器插件或发送自动请求的脚本发出的。如果您与他人共享网络连接,请向管理员寻求帮助 — 这可能是由多台计算机使用同一 IP 地址导致的。
有时,如果您使用的是自动程序普遍使用的高级条款或者正在快速连续地发送请求,则可能需要破解人机识别系统。

下面是取自维基百科中关于recaptcha 的运作方式

为了验证人类所输入的文字是正确的,而不是随意输入,有两个字会被显示出来;一个是光学文字辨识软件无法辨别的字,
另一个是一个已经知道正确答案的字。如果用户正确的回答出已知正确答案的字,那么就假设所输入的另一个光学辨识软件无法辨识的字是认真的查看后被输入而非随便输入。

reCAPTCHA问题的所需的文字图片,首先会由reCAPTCHA项目网站利用Javascript API获取,在最终用户回答问题后,服务器再连回reCAPTCHA项目的主机验证用户的输入是否正确。

reCAPTCHA项目提供了许多编程语言的库,让集成reCAPTCHA服务到现有程序的过程可以轻松些。除非有较大的带宽需求,否则reCAPTCHA原则上是一个免费的服务。

2012年起,reCAPTCHA除了原来的文字扫描图片外,也采用Google街景拍摄的门牌号码照片。