本文来自网易云社区

“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 | 你所遇到的验证码问题可能都在这里了的更多相关文章

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

    一 .使用前端生成验证码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  2. Kafka实践、升级和新版本(0.10)特性预研

    本文来自于网易云社区 一.消息总线MQ和Kafka (挡在请求的第一线) 1. 几个应用场景 case a:上游系统往下游系统推送消息,而不关心处理结果: case b:一份新数据生成,需要实时保存到 ...

  3. 用Go编写的本地文件服务器

    本文来自网易云社区,转载务必请注明出处. 一.前言 一切问题的起源就是来自一个问题"为什么我打的jar包没有注解?",带着这个疑问查了一圈资料,原来问题主要是在没有将源码中的注释进 ...

  4. 简单爬虫,突破IP访问限制和复杂验证码,小总结

    简单爬虫,突破复杂验证码和IP访问限制 文章地址:http://www.cnblogs.com/likeli/p/4730709.html   好吧,看题目就知道我是要写一个爬虫,这个爬虫的目标网站有 ...

  5. Web UI自动化测试中绕开验证码登陆方式浅谈

    web自动化测试中让测试者感到困惑的是登陆验证码,每次都不一样.现在推荐一种绕开验证码登陆的方式,其实就是将web浏览器获取的登陆cookie加载到程序中就可以了,这样程序就会认为你已经登陆,就可以跳 ...

  6. 【腾讯Bugly干货分享】腾讯验证码的十二年

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/581301b146dfb1456904df8d Dev Club 是一个交流移动 ...

  7. Android学习笔记之短信验证码的获取和读取

    PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...

  8. 看了这篇文章,Java编程速度我都惊呆了

    熟记于心,打遍天下,(开始装了) 保存 Ctrl+s                    (这个就不用解释了吧!!!!) 注释代码 Ctrl+/ 取消注释 Ctrl+/代码辅助 Alt+/ 快速修复 ...

  9. 【Dev Club 分享】腾讯验证码的十二年

    源:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578147&idx=3&sn=94a8f8f8b4a23 ...

随机推荐

  1. Django的开发服务的搭建和使用

    创建一个项目¶ 如果这是你第一次使用Django,你需要完成一些初始化操作. 即,你需要自己用代码来创建一个Django项目 ——一个Django实例所需的设置集合,包括数据库的配置.Django的配 ...

  2. What Are Threads?

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/AboutThrea ...

  3. mac git 命令自动补全

    步骤如下: 1.下载Git-completion.bash 或者直接使用SourceTree去clone到本地. 下载地址:https://github.com/markgandolfo/git-ba ...

  4. Avito Cool Challenge 2018 B. Farewell Party 【YY】

    传送门:http://codeforces.com/contest/1081/problem/B B. Farewell Party time limit per test 1 second memo ...

  5. springboot+mybatis+shiro——shiro简介

    转载:[一]shiro入门 之 Shiro简介 一.shiro介绍: 官方网址:http://shiro.apache.org/introduction.html,shiro的功能包括:认证.授权.加 ...

  6. Entity FreamWork 无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型错误解决

    Entity FreamWork 无法创建“System.Object”类型的常量值.此上下文仅支持基元类型或枚举类型错误解决: 最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指 ...

  7. WinCE下的串口通信开发(VS2005,VB.Net,VC++)

    WinCE下的串口通信开发(VS2005,VB.Net,VC++)   WinCE下的串口通信开发 一.利用Visual Basic 开发很简单,因为有现成的控件可以直接调用 以VS2005为例,首先 ...

  8. MyEclipse 远程调试Tomcat

    当Web项目部署在服务器之后,当项目出现问题的时候就需要远程调试[远程调试的代码要与本地代码一致] 配置远程调试的具体步骤如下: 1.Linux 中配置tomcat在catalina.sh中添加如下C ...

  9. LeetCode21.合并两个有序链表 JavaScript

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  10. Python 多客户端

    服务端代码 #引入socketserver模块 import socketserver #定义处理类必须继承BaseRequestHandler类 class my_server(socketserv ...