Question | 你所遇到的验证码问题可能都在这里了
本文来自网易云社区
“Question”为网易云易盾的问答栏目,将会解答和呈现安全领域大家常见的问题和困惑。如果你有什么疑惑,也欢迎通过邮件(zhangyong02@corp.netease.com)提问。
关于验证码的使用,大家也许会遇到各类问题,这里以Q&A形式总结的一些常见问题,希望对各位读者有所帮助。
Q1:验证码有什么作用?
验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作。
区分人机行为的作用不言而喻。互联行为的注册、登录、发帖、领优惠券、投票等等应用场景,都有被机器刷造成各类损失的风险,如果不对各类机器垃圾的行为加以防范,灌水内容、垃圾注册、恶意登录、刷票、撞库、活动作弊、垃圾广告、爬虫、羊毛党等用户行为一旦发生,将对产品自身发展、用户体验造成极大的影响。
目前常见的验证码形式多为图片验证码,即数字、字母、文字、图片物体等形式的传统字符验证码。这类验证码看似简单易操作,但实际用户体验较差(参见12306网站),且随着OCR技术和打码平台的利用,图片比较容易被破解,被破解之后就形同虚设。
Q2:滑动验证码的原理是什么?
滑动验证码可以显著优化用户体验,这在互联网时代是非常重要的。滑动验证码对机器的判断,不只是完成拼图,前端用户看不见的是——验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果,故而机器识别+模拟不易通过。滑动验证码也不是万无一失,但对滑动行为的模拟需要比较强的破解能力,毕竟还是大幅提升了攻击成本,而且技术也会在攻防转换中不断进步。
Q3:行为式验证码的前景如何?
先说一下什么是行为式验证码:行为式验证码是以用户产生的行为轨迹为依据,进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息综合判断,快速、准确的返回人机判定结果。
行为式验证码与传统验证码的区别:
1)传统验证码技术不足
传统验证码用户体验不佳,需要进行一系列操作才能完成。用户需要每天都要花部分时间浪费在无趣的识别数字上,也大大降低了一些网站的交互体验。同时,随着计算机自动识别技术的发展,简单的验证码数字图形也不再安全,很容易被黑客攻破。
2)行为式验证码的优势-综合判断
行为验证码是以用户产生的行为轨迹为依据,进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息综合判断,快速、准确的返回人机判定结果。
3)行为式验证码的优势-迭代性
行为验证码具备运用大数据分析和机器学习模型进行优化升级的作用。路径可以理解为:验证码展示-用户行为分析-机器人学习-返回验证结果-机器模型升级的循环,保证了行为式验证码的不断迭代升级。
行为验证码的推广,保证了网易易盾验证码在和机器刷子进行抗衡过程中不断更新迭代,从而能够持续提升系统性能,保证识别效果。
行为验证码具备运用大数据分析和机器学习模型进行优化升级的作用。路径可以理解为:验证码展示-用户行为分析-机器人学习-返回验证结果-机器模型升级的循环,保证了网易易盾行为式验证码的不断迭代升级。
Q4:怎样防止恶意刷短信验证?
在讨论防止恶意短信验证之前,我们先来看看什么是恶意短信验证及出现的原因。
恶意短信验证,属于短信轰炸的一种,用户端表现为高频收到验证短信内容,用户体验差。对公司来讲,大量的恶意短信验证,既增加公司运营成本,支付额外的短信运营费用,又会影响产品口碑,损失用户。
防止这种恶意行为,方式之一是可以增加验证码校验。发送短信验证码时,可要求输入图片验证码,验证码校验可实现人机识别,同时在验证码请求错误时,可重置验证码,防止图片验证码识别软件尝试多次识别。
Q5:是否能单纯用 JS 来实现验证码?
JS可以实现验证码,但有相当多的弊端。JS实现验证码,是客户页面的验证信息的直接验证,完全由客户端实现。其弊端在于JS操作可以通过机器模拟,模拟数据如果没有服务端验证,则仍是无效的。最终提供验证的,其实是在服务端,不能单纯用JS来实现验证码。目前验证码的技术更新换代快。
Q6:点触验证码能成为新的互联网验证码标准吗?
对于国内各大网站来说,机器账号灌水发垃圾广告是一件非常令人头疼的事情。当然很多网站也有相应的解决方案,但是最好的解决方案应该是通过多重加密的新型验证码严防机器账号注册。这一切的前提是:在不影响正常用户的体验下进行。点触是一种新形式的验证码,利用点击和拖动的动作完成验证:,这已经成为了各大网站最喜欢的验证方式。
对于网站来说,这种验证方式是一种无感知的安全措施。未来,就是优化用户体验,逐渐减少用户在这方面的感知。
Q7:验证码真的能防止盗号吗?
不能。验证码的作用在于区分人和机器,防止被暴力破解,提高破解密码的难度。人工盗号很难通过验证码实现甄别,但在防止机器撞库方面有重要地位。
相关文章:
【推荐】 关于扁平化视觉设计趋势的一些小分享
Question | 你所遇到的验证码问题可能都在这里了的更多相关文章
- 用Canvas生成随机验证码(后端前端都可以)
一 .使用前端生成验证码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- Kafka实践、升级和新版本(0.10)特性预研
本文来自于网易云社区 一.消息总线MQ和Kafka (挡在请求的第一线) 1. 几个应用场景 case a:上游系统往下游系统推送消息,而不关心处理结果: case b:一份新数据生成,需要实时保存到 ...
- 用Go编写的本地文件服务器
本文来自网易云社区,转载务必请注明出处. 一.前言 一切问题的起源就是来自一个问题"为什么我打的jar包没有注解?",带着这个疑问查了一圈资料,原来问题主要是在没有将源码中的注释进 ...
- 简单爬虫,突破IP访问限制和复杂验证码,小总结
简单爬虫,突破复杂验证码和IP访问限制 文章地址:http://www.cnblogs.com/likeli/p/4730709.html 好吧,看题目就知道我是要写一个爬虫,这个爬虫的目标网站有 ...
- Web UI自动化测试中绕开验证码登陆方式浅谈
web自动化测试中让测试者感到困惑的是登陆验证码,每次都不一样.现在推荐一种绕开验证码登陆的方式,其实就是将web浏览器获取的登陆cookie加载到程序中就可以了,这样程序就会认为你已经登陆,就可以跳 ...
- 【腾讯Bugly干货分享】腾讯验证码的十二年
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/581301b146dfb1456904df8d Dev Club 是一个交流移动 ...
- Android学习笔记之短信验证码的获取和读取
PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...
- 看了这篇文章,Java编程速度我都惊呆了
熟记于心,打遍天下,(开始装了) 保存 Ctrl+s (这个就不用解释了吧!!!!) 注释代码 Ctrl+/ 取消注释 Ctrl+/代码辅助 Alt+/ 快速修复 ...
- 【Dev Club 分享】腾讯验证码的十二年
源:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578147&idx=3&sn=94a8f8f8b4a23 ...
随机推荐
- web页面显示当前系统时间并定时刷新
function showCurrentDate(){ var today,hour,second,minute,year,month,date; var strDate ; today=new Da ...
- 当当网-前端project师測试题
前端project师測试题(笔试时间20分钟.面试时间20分钟) 一.笔试 1.基础问题 (1)前端页面有哪三层构成,各自是什么? ...
- iOS 人机交互指导方针(iOS Human Interface Guidelines)
iOS 人机交互指导方针(iOS Human Interface Guidelines) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名 ...
- StringUtils工具类介绍
1 abbreviate方法缩写一段文字 StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg...& ...
- 关闭 XXXXX 前你必须关闭所有会话框
这个问题应该是和Microsoft管理控制台(Microsoft Management Console,MMC)有关系 我是在使用 任务计划程序 时碰到这个问题的,网上也有其他人在使用 事件查看器 的 ...
- PL\SQL设置中文
打开PL\SQL 1.菜单->Tools ->preferences->User Interface -> Appearance -> Language 选择 Chine ...
- The Linux Kernel
- Python 学习笔记(九)Python元组和字典(二)
什么是字典 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 键必须是唯 ...
- iOS 从零到一搭建组件化项目框架
随着公司业务需求的不断迭代发展,工程的代码量和业务逻辑也越来越多,原始的开发模式和架构已经无法满足我们的业务发展速度了,这时我们就需要将原始项目进行一次重构大手术了.这时我们应该很清晰这次手术的动刀口 ...
- STL专题·vector容器
1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize (vector<int> a(10);) vecto ...