验证码不应只用来证明自己

  验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and HumansApart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机和人的公共全自动程序。

  验证码现如今存在于互联网的各个角落,提交有验证码,回复有验证码,注册有验证码,绑定有验证码,修改有验证码,付费还有验证码。从安全角度来说,验证码无疑是一个好方法,可以防止一些恶意程序的操作,但在界面设计师们绞尽脑汁想减少用户操作步骤来说,是无法避免但又不起决定性操作的一步,据统计人们平均停留在验证码的时间超过5.5秒,有的网站的安全防范特别高,验证码的信息是随机大小写+随机数字+随机干扰图形的混合。

  有时候就是这短短的几秒,大脑经过思考过程很容易会改变当前的决定,如果这是一个注册流程,很可能网站又失去了一个用户,如果这是一个付费流程,可能网站失去了一笔交易。这肯定不是我们的初衷。

  但在各种黑客手段层出不穷的今天,网站又不得不使用验证码来保证用户的操作安全,那么我们能不能将验证码这一步做的没那么麻烦?目前大多数网站还是使用的内容和交互比较复杂的验证码,不过也有网站他们正在做一些改变。设想下如果验证码都是一个随机英文单词+随机干扰背景,这样,用户在只输出的几个字母,目前主流的输入法自带的联想字词,就自动显示出来,简单的选择下就可以了,还不容易出错。个人感觉比较适合定义为小清新/文青的网站,用单词做验证码,虽然只是一个小细节,但还是保持了网站整体风格,当然如果遇到使用一些少数不带联想字词输入法的用户可能会慢些。还有些办法比较适合中国地区使用,如上图用随机汉字和随机干扰背景,这个虽然也要耗费时间,但在中国地区来说,中文至少比英文识别速度更快,盲打的速度也高。如果将验证码中文设定为随机成语,配合输入法的联想功能,这样也能更方便一些。还有一种方法,适用于填写内容很长的表单。将验证码的位置做一些变化,将它放在关键填写内容之后,或者放在靠前明显位置,这样用户一上来就将这步不必要,又不得不做的一步做完了,后面时间就专心填写自己所,对提高效率也有一定帮助,当然个人建议验证码内容不要过于繁杂,刷新机制不要太严格,不然用户在第一步就遇到障碍更不用说耐心填写后面内容了。目前很多设计团队都不断在对验证码的呈现方式做优化,说明大家都意识到验证码的作用和定位。所以个人认为,界面设计既然是对人机交互,操作界面的整体设计,那么除了在注重外表美观,色彩风格的同时,更要注重用户习惯,在不脱离当前主流设计的情况下,将操作简捷最大化,记忆负担最小化。

时间: 2024-11-01 23:34:07

验证码不应只用来证明自己的相关文章

2017最新App Store 审核指南中文版

简介 App 正在改变世界,丰富人们的生活,并为像您一样的开发者提供前所未有的创新机会.因此,App Store 已成长为一个激动人心且充满活力的生态系统,正为数百万的开发者和超过十亿的用户提供服务.不管是开发新手,还是由经验丰富的程序员所组成的大型团队,我们都非常欢迎您为 App Store 创建 app,并希望能够帮助您了解我们的准则,以确保您的 app 能够快速通过审核流程. App Store 的指导原则非常简单:我们希望为用户获取 app 时提供更安全可靠的体验,并为所有开发者提供借助

保护 XML Web 服务免受黑客攻击(4/end)

web|xml|攻击 定义接口 与其他 Web 应用程序相比,XML Web 服务器应用程序的一个主要优点就是很好地定义了传递到您的应用程序的整个 XML 架构.对于应用程序设计人员和开发人员来说,这意味着您已经知道 XML Web 服务所必须处理的数据具有有效的格式.如果接收的数据格式不正确,那么 Microsoft SOAP Toolkit 2.0 或 .NET 框架之类的工具将过滤出该请求,这样您就不必为此担心了.例如,您不必分析日期输入的语法是否有效.日期必须具有有效的 XSD 格式,否

保护 XML Web 服务免受黑客攻击, [第二部分]

web|xml|攻击 保护 XML Web 服务免受黑客攻击, []第一部分] [第二部分] Matt PowellMicrosoft Corporation2001 年 9 月 19 日在上一篇文章中,我们讨论了不同种类的攻击,以及如何进行配置以免受到攻击.本文中,我们将集中讨论如何进行设计和开发,以免受到攻击.首先,我想介绍两个非常好的新工具,它们是 Microsoft 开发的,可使您的 Web 服务器获得最大的安全性.IIS Lockdown Tool(英文)可以最大限度地防止可能的攻击者

Java Web服务进阶

随着最近 Sun Microsystems 的 Java Web Services Developers Pack(Java WSDP)版本 1.0 的发布,Java 开发人员现在可以拥有一个方便的.集所有功能于一身的下载包,用来帮助在 Java 平台上开发 Web 服务.Java WSDP 包含 Java XML Pack 中的所有用于 XML 的 Java API(Java APIs for XML(JAX)),还包含有 Apache Tomcat 服务器以及为开发与测试 Web 服务提供一

JAVA中的异常与错误处理详解

  异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它.Java中使用异常类来表示异常,不同的异常类代表了不同的异常.但是在Java中所有的异常都有一个基类,叫做Exception. 错误: 它指的是一个合理的应用程序不能截获的严重的问题.大多数都是反常的情况.错误是VM的一个故障(虽然它可以是任何系统级的服务

给系统管理员的 15 条实用 Linux/Unix 磁带管理命令

给系统管理员的 15 条实用 Linux/Unix 磁带管理命令 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中.在本教程中你将会了解到: 磁带设备名 管理磁带驱动器的基本命令 基本的备份和恢复命令 为什么备份? 一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加.有了备份,你就有了从磁盘故障中恢复的能力.备份

java异常与错误处理基本知识_java

异常与错误:异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它.Java中使用异常类来表示异常,不同的异常类代表了不同的异常.但是在Java中所有的异常都有一个基类,叫做Exception.错误:它指的是一个合理的应用程序不能截获的严重的问题.大多数都是反常的情况.错误是VM的一个故障(虽然它可以是任何系统级的服务).所以,

asp.net服务器端指令include的使用及优势介绍_实用技巧

      asp.net中的服务端包括指令简单点就是一个<!-- #include file|virtual="filename" –>这样的指令,msdn中的名词解释是:将指定文件的内容插入 ASP.NET 文件中,包括网页(.aspx 文件).用户控件文件(.ascx 文件)和 Global.asax 文件.插入静态文件这个基本功能就不说了,插入aspx.ascx,这功能算是挺强了,asax哥就有点困惑了,这个暂且不管,今天要说的就是这个指令. 尴尬的存在     服

Java 编程要点之 I/O 流详解

本文详细介绍了 Java I/O 流的基础用法和原理. 字节流(Byte Streams) 字节流处理原始的二进制数据 I/O.输入输出的是8位字节,相关的类为 InputStream 和 OutputStream. 字节流的类有许多.为了演示字节流的工作,我们将重点放在文件 I/O字节流 FileInputStream 和 FileOutputStream 上.其他种类的字节流用法类似,主要区别在于它们构造的方式,大家可以举一反三. 用法 下面一例子 CopyBytes, 从 xanadu.t