怎样设置密码保护问题
作者:咏沙 来源:taobao.com ued 发布时间:2009-02-16 13:12:00
密码保护是注册过程中的关键环节,尤其是对帐户安全级别比较高的网站,尤其在账号被盗或者涉及安全登录等问题的情况下,密码保护问题作为用户身份识别信息,来通过帐号异常登录(如密码被盗,被封帐户被封等)等权限认证。最近做项目才发现这里有很多细节问题,严重影响了用户的体验,总结了以下几点关键因素,跟大家探讨。
一、安全性
设置密码保护问题的最关键的因素就是安全性,因此需要只有注册的用户本人才能提供正确的答案,不易被别人猜中或被机器破解。设计时可以参照如下因素:
答案不要问用户经常用到的信息,这样防止别人通过打听或调查而轻易获得。(比如:你的小名,生日,身份证号,电话号码,地址,宠物的名字等等)
问题最好和用户的隐私相关并且记忆深刻。
我们看看以下例子的比较,可以看出问题1和2要优于问题3和4:
你小时候梦想的职业是?
你的第一个男朋友(女朋友)的生日?
你妈妈的名字?
你手机号码的后四位数?
二、确定性
提示问题要唯一,不要同时给出多个问题。
以QQ的注册页面为例,有个问题是“你的学号(或工号)是?”就很迷惑,对于那些只有学号或工号的用户还好,对于两个答案都拥有的用户就很迷惑,很可能他们在注册是随便输入一个,在找回的时候可要回想当初究竟填了那一种号码?我猜想当时的设计师会认为拥有学号的是学生,拥有工号的是上班族,这两个条件是互斥的,所以只能二选一。其实情况并不这么简单,就以我来举例,注册的qq时 候我是学生,现在已经上班了。找回密码的时候可能早就忘了当时的学号了;或者有的人是在职的学生,同时拥有学号和工号;再或者他转了好几次学,换了n个工作,可能就存在不止一个学号或工号。。。总之,这两个问题在很多情况下不是互斥的,甚至是重叠的。
图1 qq的注册页面
2.提示问题不要含混不清。
以“我最好朋友的生日”来说。“最好的朋友”有很多限定条件,一个人也许不止有一个最好的朋友,也许前两年的朋友过了几年就成了关系很淡的朋友。这还不算,还要在此基础上价加上“生日” 这个条件涉及到很多格式(下面会提到这个问题),无疑是给用户雪上加霜。
三、不变性
不要让问题的答案是可变的,不然会导致多种可能的答案:
不要让用户自己去定义格式
比如上面提到的“生日”的格式就有很多种:1982/09/08;1982年9月8号(日);1982-09-08等等。我的建议是,如果一定要存在该问题,在答案填写的表单应该对应出现系统定义好的格式,而不单单是一个输入框。
问题包含的内容要长时间保持不变
比如“你的手机号码的后6位”等问题,有的人会经常更换手机号码,对那些不经常更换手机号的人来说,手机被盗啊,换了居住地点等外在条件也会有变号的影响。所以不建议作为选项;“你的身份证的后6位”就会比前者要好很多。
答案不要有缩写或简写的可能
比如“你大学毕业的学校”此类问题,答案会五花八门,以“西北工业大学”为例,就会有“西工大”“西北工大”“NWPU”等叫法,将问题改成”你毕业的大学的全称?“就好很多。
四、便于记忆
一个好的提示答案需要很容易被用户记住,理想情况下,用户在看到密码提示后能立马想到答案,而不需要去查身边的一些资料或努力回想。比如“我的驾驶执照号码是?”(反正我是不知道,你们呢?)
另外,不要问到童年时的信息,毕竟离现在这么长时间了。比如:“你最喜欢的小学老师的名字是?”等。
五、其它的细节
其实有的密码提示问题并不适用于所有人(如”我的汽车牌号?“),况且还有不少缺陷,因此我建议设计师应该多提供一些问题让用户选择,比如图1提供2-3个表单,每个包含15个问题,选择了第一个问题后,后两个表单可以自动清除已选择的选项。
不要让用户自定义保护问题。虽然这个功能看上去很人性化,但是用户是很怕麻烦的,如果有合适的问题,干嘛还要自己输入呢?( Don’t make me think).况且看看上面的例子就知道设置好的问题是很不容易的,这样的事情还是留给设计师去做吧。
3.问题避免提到颜色,因为每个人对颜色的感知都不同,尤其是色盲用户。
最后我想说的是,密码保护主要是帮助用户方便找回自己的ID,如果这个过程太过繁琐反而会影响操作,在什么时候使用,以及怎样掌控找回的流程,是需要前期评估的,只有在确定使用的时候再去考虑如何设计,千万不要过于纠结问题的细节。
参考文献:
^ Garry. “Designing Good Security Questions“. Retrieved on 2008-01-30.
^ Chris baker. “Security question difficulties” .Retrieved on 2008-01-30.
猜你喜欢
- 问题描述:用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率
- django中瀑布流初探img.html<!DOCTYPE html><html lang="en"&
- 装了 Access 2003 安全更新 (KB981716) 之后 Access 打不开,office2003-KB981716-FullF
- NumPy中asarray的用法函数说明asarray(a, dtype=None, order=None)转换输入为数组 array输入参
- 本文实例讲述了javascript insertAfter()定义与用法。分享给大家供大家参考,具体如下:HTML部分:<div id
- 如何在SQL2000的查询中使用XML-Data?具体程序如下:orders.asp<%@ Language=VBScrip
- 由于是从源码包安装的Mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本只好手工重启有人建议Killa
- 在Python2.x中表示八进制的方式有两种:以'0'开头和以'0o'(字母o)开头: Pyth
- 在自己的网站主页上增加社会化分享按钮,是有效提高自己网站流量的一种方法。今天我在无争围棋网上增加了社会化按钮,根据我个人的习惯,我选择了豆瓣
- 如何获取相邻数据因为项目,所以找到了一些资料并且总结了下关于获取相邻数据的方式。我只找到了以下的.../*获取id值与5相减绝对值最近的数据
- 不废话,直接看代码,需要的根据需求完善。var getKeyCode = function (key) { var key_co
- 代码使用方法:0001:判断一个计算结果是不是无穷大:if(isFinite(999999999*999999999) == true)--
- tkinter 绘制GUI简单明了,制作一些简单的GUI足够,目前遇到的一个问题是不能同时排列显示多幅图片(目前没找到同时显示解决方法),退
- 尽管Flask的request对象提供的支持足以处理web表单,但依然有许多任务会变得单调且重复。表单的HTML代码生成和验证提交的表单数据
- 认识pip众所周知,pip可以对python的第三方库进行安装、更新、卸载等操作,十分方便。pip的全称:package installer
- 自旋锁获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。 它是为实现保护共享资源而提出的
- 一、Linux系统查看Python路径whereis python此命令将会列出系统所安装的所有版本的Python的路径效果如下: 
- 前言:不知道有多少同学跟我一样,最初接触编程的动机就是为了自己做个游戏玩?今天要给大家分享的是一个 pygame 写的“
- 1.新建site-packages目录,进入到site-packages目录下;2.在site-packages目录下执行pip freez
- 1.前提条件    本文是在安装了Anaconda3的环境下,使用P