当前位置: 首页 > article >正文

什么是CAPTCHA?工作原理详解与应对方案

CAPTCHA 代表“全自动公共图灵测试,用于区分计算机和人类”。这些测试充当身份验证机制,以确保网站流量来自真人,而不是机器人。

CAPTCHA 测试可以在您与网站交互的过程中出现在各个时间点,例如在登录尝试、表单提交期间,或者当您的浏览活动模仿机器人流量时(例如,多次刷新浏览器或快速打开大量链接)。

一、什么是 reCAPTCHA?

ReCAPTCHA 是 Google 的一项CAPTCHA服务,许多网站都在使用。reCAPTCHA v1 要求您从扭曲的图像中解读和输入文本,而 reCAPTCHA v2 则向您呈现一个更简单的“我不是机器人”复选框。ReCAPTCHA v2 会分析您的行为(例如您如何移动鼠标光标),以确定您是人类还是机器人。

如果 Google的初步分析不确定,您可能会面临基于图像的验证,需要您选择与给定提示相匹配的图像(例如,“选择所有带有交通灯的图像”)。

二、CAPTCHA 用于什么?

网站使用 CAPTCHA 来检测和阻止自动流量。社交媒体平台、电子商务网站和在线银行服务等高流量网站是自动滥用的主要目标。

  1. 防止自动滥用:CAPTCHA 阻止机器人和自动脚本利用网站功能,例如提交表单、创建虚假账户或向评论区发送垃圾邮件。
  2. 防止暴力攻击:通过要求人工验证,CAPTCHA 可以阻止机器人重复自动尝试猜测密码或绕过登录凭据。
  3. 确保数据收集准确:CAPTCHA 确保响应来自真实的人,从而保持民意调查和调查数据的完整性和准确性。
  4. 防止票务倒卖:CAPTCHA 限制机器人快速购买大量活动门票,然后黄牛再以更高的价格转售。
  5. 减少垃圾邮件:通过验证用户是否是人类,CAPTCHA 可以防止自动系统发送垃圾邮件或发布垃圾评论。
  6. 保护电子商务网站:CAPTCHA 可防止机器人将商品添加到购物车并耗尽库存,确保真正的客户能够公平地获得产品。

三、CAPTCHA 的类型

哪些属于CAPTCHA 测试?

1、文本验证码

最常见的基于文本的 CAPTCHA 形式要求您从扭曲的图像中解读和输入文本。例如,其中可能包含扭曲的字母和数字,这些字母和数字对于机器人来说很难阅读,但对于人类来说却可以识别。

2、图像验证码

基于图像的 CAPTCHA 要求您根据图像解答谜题。通常会有一个提示,例如“选择所有带有交通信号灯的图像”。这包括 reCAPTCHA 的基于图像的谜题。

3、音频验证码

音频 CAPTCHA 提供您必须转录的语音或数字片段。这种类型的 CAPTCHA 尤其适合有视力障碍的人,因为它可以替代基于文本或图像的 CAPTCHA。

4、数学的验证码

基于数学的 CAPTCHA 会要求您解决一个简单的数学问题,例如“3 + 4 等于多少?”有时这些 CAPTCHA 会使用与基于文本的 CAPTCHA 相同的扭曲策略,因此机器人无法读取问题。这些问题对于人类来说很容易解决,但可能会阻止基本的机器人。

5、逻辑验证码

逻辑 CAPTCHA 会提出需要人类推理能力的逻辑问题或谜语。例如,“如果你有两个苹果,拿走一个,你还剩下多少个?”这些问题对人类来说很简单,但对机器人来说却很有挑战性。

四、避免CAPTCHA验证?

目前为了更好的进行网络业务,许多SEO、网页收集工作者会使用反机器人解决方案来避免频繁的CAPTCHA,避免业务受限。

  1. IP地址质量:如果您的IP地址存在可疑或恶意活动,算法可能会向您提供验证码,因此做业务的一般会用到纯净的住宅代理IP来减少被监测的可能,很多也会用此来检查IP是否纯净。
  2. 频繁的登录尝试:在短时间内多次尝试登录账户,尤其是如果登录尝试失败。
  3. 异常的注册行为:快速连续注册多个账户,或者在非常短的时间内在多个不同的网站上注册。
  4. 自动化流量:如果系统检测到流量模式类似于自动化脚本或机器人,可能会触发CAPTCHA。
  5. 高风险地区:来自已知有高风险或欺诈行为的地区或IP地址的访问可能会触发CAPTCHA。
  6. 大量数据提交:在短时间内提交大量数据或表单,这可能表明自动化脚本在运行。
  7. 浏览器指纹:如果浏览器配置或行为与典型用户显著不同,可能会触发CAPTCHA。
  8. cookie禁用:一些网站使用cookie来识别和跟踪用户,禁用cookie可能会导致CAPTCHA挑战。
  9. 安全策略:网站或应用程序的安全策略可能会在特定情况下自动触发CAPTCHA,以防止潜在的滥用。

关于如何避免频繁的CAPTCHA,下次我将继续整理更详细的干货,感兴趣再继续观看!


http://www.kler.cn/a/290320.html

相关文章:

  • Mysql 8迁移到达梦DM8遇到的报错
  • 给查询业务添加redis缓存和缓存更新策略
  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • 回归分析学习
  • ESLint 使用教程(七):ESLint还能校验JSON文件内容?
  • LLMs之MindFormers:基于国产硬件华为Atlas针对GLM-4-9B实现模型全参微调(单机8卡)→模型推理(单卡多batch推理)
  • git 常用基础命令
  • 【MeterSphere】vnc连接不上selenium-chrome容器
  • 编译原理项目——C++实现C语言编译器输出为8086级汇编(代码/报告材料)
  • vue的侦听器、表单输入绑定、模版引用
  • Redis过期键监听
  • 使用Java实现LRU缓存和LFU缓存
  • Oracle 19C 数据操纵语言DML
  • ES6中try-catch
  • 智能工厂监控升级:Sovit2D大屏展示和ARM计算机的完美搭档
  • 注意力机制
  • LangChain学习
  • 收徒弟了。
  • Oracle 常用函数大全
  • 深入理解区间调度问题:从贪心算法到动态规划的加权优化
  • SprinBoot+Vue实验室考勤管理微信小程序的设计与实现
  • UEFI开发——编写一个简单的PPI
  • FFmpeg源码:avcodec_descriptor_get函数分析
  • Flutter 仿iOS桌面悬浮球效果
  • 【数学建模备赛】Ep07:灰色预测模型
  • 随手笔记【五】