“验证码”等于“流氓软件”

作者:tanggaowei 来源:蓝色理想 时间:2007-10-19 18:29:00 

“'验证码'等于'流氓软件'”这句话本身存在逻辑问题,因为“验证码”并不是一个软件,而是软件里的一个功能。这句话的实际意思是,带“验证码”功能的软件是“流氓软件”。

请不要激动,且听我道来。

在很久很久以前(其实并不久),你登录一个系统时,只需要输入“用户名”、“密码”,然后“回车”就可以了,费不了多大劲。后来,出现了一些不良份子(多半是因为闲得无聊),利用程序反复登录网站,以获取他人密码,或使系统超负荷甚至崩溃。为了应对这样的危机,有人发明了“验证码”。

最常用的“验证码”功能,是让用户识别一张图片上的数字和字母,然后将识别的结果填入一个输入框,和其它信息一起提交给系统。图片上的数字和字母就是“验证码”。系统在执行其它操作之前,先验证用户输入的“验证码”是否和图片上的一致。如果不一致,则直接返回到客户端,不进行余下操作。直到现在,图像识别技术离成熟也还有很远,对图片上文字的识别率非常低。所以,恶意程序几乎不可能通过图片“验证码”的验证。即使偶尔能识别一次,也不可能多次连续通过“验证码”的验证。这样,利用程序反复登录,以获取他人密码的可能性几乎等于零;而且,系统只进行一次“验证码”验证,就将恶意登录打回,极大地减轻了系统负担。这样,可谓一举两得呀!

除了图片“验证码”还有其它形式,这里就不多说了。但目的都是一个,就是让人可以识别,而让机器无法识别,以防止恶意程序的攻击。

既然“验证码”功能这样好,怎么会跟“流氓软件”联系起来的呢?

“验证码”功能确实好,一上阵就所相匹敌,战无不胜!软件设计人员纷纷请它来助阵,以提高他们系统的防御能力。于是,到如今,你登录一个系统时,不只要输入“用户名”和“密码”了,你还要输入“验证码”。“用户名”和“密码”都是你记住的,很容易输入。而“验证码”是随机的,每次你都要去识别它。“验证码”功能并没有一个统一的标准,各个系统各显神通。有的加上颜色,有的加上背景图案,有的字体大小不一,有的角度不同等等,以提高机器的识别难度。机器的识别难度是提高了,可是,人的识别难度在添加。有些“验证码”常常不是第一次就能识别正确,比如数字“1”和字母“l”就很难区分,有的字母大写和小写也很难区分。虽然有些系统提供刷新“验证码”的功能,以方便用户选择一个容易识别的“验证码”进行识别。但是,这并没有从本质上解决问题,反而让用户进行了更多的操作。“验证码”功能带来的本质问题是:每次登录时都要多一个输入“验证码”的操作,而“验证码”的随机性和不易识别性,又使用输入“验证码”操作本身变得愈加艰难和痛苦!

“验证码”功能,强迫用户进行不喜欢且不必要(以前就没有)的操作,而且没有任何选择的余地,霸道得很。用户虽然咬牙切齿,却无能为力。所以,它对用户来说,却成了一个恶意功能。正规软件加上恶意功能就成了“流氓软件”。

那么,前面花大段落描述了“验证码”功能对系统安全的好处,难道都是骗人的吗?

当然不是。“验证码”功能的出发点是好的,它的本质也是好的,只是,当它表现给用户时,选择的表现形式有问题。就像“广告”,本身并不是恶意的,只是当它以“强行弹出”的形式表现出来就变成了恶意。

标签:验证码,体验,google
0
投稿

猜你喜欢

  • 分享个asp文件缓存代码,使程序从缓存读数据

    2011-03-09 19:47:00
  • ORACLE常见错误代码的分析与解决三

    2010-07-26 13:28:00
  • optgroup、sub、sup和bdo标签

    2009-07-26 18:39:00
  • 2010 图标设计趋势

    2010-12-17 12:44:00
  • asp 小偷采集程序原理与常用函数方法

    2011-03-06 10:36:00
  • 认识那些被忽略的SQL Server注入技巧

    2009-01-20 13:15:00
  • DreamweaverMX 2004打造细线表格

    2008-10-01 09:39:00
  • 如何列出SQL数据库中的存储过程?

    2010-01-12 19:58:00
  • 客齐集社区头像显示效果代码

    2008-04-03 13:15:00
  • 语义化你的HTML标签和属性

    2008-06-12 13:18:00
  • 新兴XML处理方法VTD-XML介绍

    2008-09-04 14:42:00
  • 商业价值与用户价值的平衡

    2008-12-10 18:42:00
  • 页面加载对访问的影响

    2009-10-30 18:54:00
  • JavaScript中的"类" 序言

    2008-02-18 13:26:00
  • 牢不可破的九宫格布局

    2009-07-24 12:40:00
  • MySQL数据库线程缓冲池详解

    2012-04-13 11:48:01
  • 如何优化下面这段代码?

    2010-01-23 11:30:00
  • 图片格式与设计那点事儿

    2011-01-06 12:17:00
  • 如何提升JavaScript的运行速度(DOM篇)[译]

    2009-02-25 12:24:00
  • 添加到各大流行网摘 书签的代码

    2008-04-20 14:15:00
  • asp之家 网络编程 m.aspxhome.com