Question | 你所遇到的验证码问题可能都在这里了

“Question”为网易云易盾的问答栏目,将会解答和呈现安全领域大家常见的问题和困惑。如果你有什么疑惑,也欢迎通过邮件([email protected])提问。

关于验证码的使用,大家也许会遇到各类问题,这里以Q&A形式总结的一些常见问题,希望对各位读者有所帮助。

Q1:验证码有什么作用?

验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作。

区分人机行为的作用不言而喻。互联行为的注册、登录、发帖、领优惠券、投票等等应用场景,都有被机器刷造成各类损失的风险,如果不对各类机器垃圾的行为加以防范,灌水内容、垃圾注册、恶意登录、刷票、撞库、活动作弊、垃圾广告、爬虫、羊毛党等用户行为一旦发生,将对产品自身发展、用户体验造成极大的影响。

目前常见的验证码形式多为图片验证码,即数字、字母、文字、图片物体等形式的传统字符验证码。这类验证码看似简单易操作,但实际用户体验较差(参见12306网站),且随着OCR技术和打码平台的利用,图片比较容易被破解,被破解之后就形同虚设。

Q2:滑动验证码的原理是什么?

滑动验证码可以显著优化用户体验,这在互联网时代是非常重要的。滑动验证码对机器的判断,不只是完成拼图,前端用户看不见的是——验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果,故而机器识别+模拟不易通过。滑动验证码也不是万无一失,但对滑动行为的模拟需要比较强的破解能力,毕竟还是大幅提升了×××成本,而且技术也会在***转换中不断进步。

Q3:行为式验证码的前景如何?

先说一下什么是行为式验证码:行为式验证码是以用户产生的行为轨迹为依据,进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息综合判断,快速、准确的返回人机判定结果。

行为式验证码与传统验证码的区别:

1)传统验证码技术不足

传统验证码用户体验不佳,需要进行一系列操作才能完成。用户需要每天都要花部分时间浪费在无趣的识别数字上,也大大降低了一些网站的交互体验。同时,随着计算机自动识别技术的发展,简单的验证码数字图形也不再安全,很容易被×××攻破。

2)行为式验证码的优势-综合判断

行为验证码是以用户产生的行为轨迹为依据,进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息综合判断,快速、准确的返回人机判定结果。

3)行为式验证码的优势-迭代性

行为验证码具备运用大数据分析和机器学习模型进行优化升级的作用。路径可以理解为:验证码展示-用户行为分析-机器人学习-返回验证结果-机器模型升级的循环,保证了行为式验证码的不断迭代升级。

行为验证码的推广,保证了网易易盾验证码在和机器刷子进行抗衡过程中不断更新迭代,从而能够持续提升系统性能,保证识别效果。

行为验证码具备运用大数据分析和机器学习模型进行优化升级的作用。路径可以理解为:验证码展示-用户行为分析-机器人学习-返回验证结果-机器模型升级的循环,保证了网易易盾行为式验证码的不断迭代升级。

Q4:怎样防止恶意刷短信验证?

在讨论防止恶意短信验证之前,我们先来看看什么是恶意短信验证及出现的原因。

恶意短信验证,属于短信轰炸的一种,用户端表现为高频收到验证短信内容,用户体验差。对公司来讲,大量的恶意短信验证,既增加公司运营成本,支付额外的短信运营费用,又会影响产品口碑,损失用户。

防止这种恶意行为,方式之一是可以增加验证码校验。发送短信验证码时,可要求输入图片验证码,验证码校验可实现人机识别,同时在验证码请求错误时,可重置验证码,防止图片验证码识别软件尝试多次识别。

Q5:是否能单纯用 JS 来实现验证码?

JS可以实现验证码,但有相当多的弊端。JS实现验证码,是客户页面的验证信息的直接验证,完全由客户端实现。其弊端在于JS操作可以通过机器模拟,模拟数据如果没有服务端验证,则仍是无效的。最终提供验证的,其实是在服务端,不能单纯用JS来实现验证码。目前验证码的技术更新换代快。

Q6:点触验证码能成为新的互联网验证码标准吗?

对于国内各大网站来说,机器账号灌水发垃圾广告是一件非常令人头疼的事情。当然很多网站也有相应的解决方案,但是最好的解决方案应该是通过多重加密的新型验证码严防机器账号注册。这一切的前提是:在不影响正常用户的体验下进行。点触是一种新形式的验证码,利用点击和拖动的动作完成验证:,这已经成为了各大网站最喜欢的验证方式。

对于网站来说,这种验证方式是一种无感知的安全措施。未来,就是优化用户体验,逐渐减少用户在这方面的感知。

Q7:验证码真的能防止盗号吗?

不能。验证码的作用在于区分人和机器,防止被暴力破解,提高破解密码的难度。人工盗号很难通过验证码实现甄别,但在防止机器撞库方面有重要地位。

原文地址:http://blog.51cto.com/13610827/2170877

时间: 2024-11-09 00:34:57

Question | 你所遇到的验证码问题可能都在这里了的相关文章

用Canvas生成随机验证码(后端前端都可以)

一 .使用前端生成验证码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="canvas" width="120" height="40"></canvas> <

【译文】追求生产极简主义

翻译 :丁兴华 欢迎访问网易云社区,了解更多网易技术产品运营经验. 有报道称Kelly Johnson在冷战期间的洛克希德公司工作时,创造了KISS('keep it simple, stupid')这个原则:建议系统应该设计的尽量简单. 虽然复杂度从来不是任何项目的明智设计目的,但是它在追求新特性和新组件时会自然产生.KISS原则鼓励设计者通过制定简单的目标来主动抵抗这种诱惑,这样制造出来的产品才能保证更好的可维护性.健壮性和灵活性.比如在喷气式战斗机中,这或许意味着一架飞机可以在激战的战场上

常见验证码的弱点与验证码识别

http://drops.wooyun.org/tips/141 常见验证码的弱点与验证码识别 insight-labs · 2013/06/08 11:36 0x00 简介 验证码作为一种辅助安全手段在Web安全中有着特殊的地位,验证码安全和web应用中的众多漏洞相比似乎微不足道,但是千里之堤毁于蚁穴,有些时候如果能绕过验证码,则可以把手动变为自动,对于Web安全检测有很大的帮助. 全自动区分计算机和人类的图灵测试(英语:Completely Automated Public Turing t

转:常见验证码的弱点与验证码识别

常见验证码的弱点与验证码识别 验证码作为一种辅助安全手段在Web安全中有着特殊的地位,验证码安全和web应用中的众多漏洞相比似乎微不足道,但是千里之堤毁于蚁穴,有些时候如果能绕过验证码,则可以把手动变为自动,对于Web安全检测有很大的帮助. 全自动区分计算机和人类的图灵测试(英语:Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA),俗称验证码,是一种区分用户是计算机和人的公共全

javaweb之验证码

看了尚硅谷佟刚老师讲的httpsession应用中的验证码,总觉得一遍又一遍的写这些东西实在没意思,所有就简单封装了一个验证码生成器,默认支持纯数字.纯字母.数字字母组合.简单的10以内的加减乘的验证码. 先声明:代码中BufferedImage等的生成部分和一些对验证码的修饰都是来自佟刚老师的代码! 下载jar包: http://files.cnblogs.com/huyongliang/codeGenerator.zip 来个截图: 一 结构概览 CheckCode类是这个工具包的抽象父类,

验证码有存在的必要吗?——论非人为操作的可识别性

从验证码第一次被应用于网络中,早期的验证码是一串非常简单的形状标准的数字,经过长期的发展,形式越来越多样化,人们似乎已经习惯了,没有人去质疑它有什么问题,更没有人去思考它是否有存在的必要.复杂的验证码虽然起到了防范非人为操作的作用,但是带来的时间及效率上的损失更是巨大的.的确,它不是一个错误,但是我们从效率上来考量,它是一个累赘.我们有必要让人们从繁琐的辨认.输入.输错重输的严重耗费时间的劳动中解放出来. 很早以前我就思考一个问题:验证码在理论上是否有存在的必要性呢? 人为操作与机器操作(非人为

验证码识别

  本文所使用的验证码识别的方法非常暴力,高手可忽略.对于在客户端实现的“伪验证码”或使用静态图片的验证码,本文不作讨论.对于验证码的识别,一直以为,只要足够的样本,就可以分析出验证码的特征,从而进行分门别类,再通过和样本做比较,就可以得出正确验证码.这里简单而暴力的验证一下这个一直想验证而没有行动过的想法.做实验的网站是某体检机构,因为它生成的验证码很有规律(不确定是不是静态文件,但就可以当成是算法随机生成的),每个字符的位置相对固定,虽然每个字符的颜色和背景都不一样,但是背景颜色很相近,没有

验证码绕过

什么是验证码? CAPTCHA是(全自动区分计算机和人类的图灵测试)的简称,是用于区分计算机和人类的一种程序算法,这种程序必须能生成并评价人类能很容易通过但计算机却通不过的测试. 像我们平时最常遇到的,就是基于图片的验证码.这类图片验证码通常包含的,都是些易于用户识别简单的验证信息.如下图所示.用户必须准确的识别图像内的字符,并以此作为人机验证的答案,方可通过验证码的人机测试.相反如果验证码填写错误,那么验证码字符将会自动刷新并更换一组新的验证字符,直到用户能够填写正确的验证字符为止. 验证码的

验证码识别 ——知乎网友1

机器自动识别验证码的原理是怎么样的? 我自己写验证码识别模块的时候是这样的,当然不一定大家都这样写,肯定有更好的算法,我要识别的那个验证码是比较简单地那种,所以这样写就够了. 我用Windows的画图工具画了这个张图,用来举个例子: 这是一张分辨率为19*7的图片 1.遍历所有像素点(像PHP就是先getimagesize,获取i和j,然后用imagecolorat进行两重循环,就可以得到所有像素点的RGB值数据),然后二值化[比如判断RGB值小于#FFFFFF的(即非白色)时候标记为1,大于等