從網站驗證碼談用戶體驗
多數網站為了安全起見,在提交內容時多增設有驗證碼這個功能,從早期單一的數字驗證到現在多功能化驗證,甚至是網易163郵件已經推出了臉部識別登錄測試等。本文,就普通的網站驗證碼一事,談談用戶體驗這件細微的事。...
- 驗證碼的目的
- 常見驗證碼的大概分類
- 令人難以忍受的驗證碼
- 字符驗證碼用戶體驗淺談
- 驗證碼忽略大小寫
- 去除驗證碼的形近字符
- 使用PHP生成高用戶體驗的驗證碼
</ul> </blockquote>驗證碼的目的
驗證碼大多是為了防止機器人向網站傾銷大量垃圾信息。
常見驗證碼的大概分類
- 單一的字符圖片
- 數字
- 字母
- 問答型
- 公式——簡單的數學運算
- 選擇性問答——給用戶幾個答案,讓用戶填寫
- 混合型——字符+音頻
- 互動型——讓用戶進行某個操作,如拉動某個圖標
本文著重談論單一字符型的用戶體驗。
令人難以忍受的驗證碼
下面是一張驗證碼
很顯示,這是一個中文網站,用的卻是外國流行的驗證碼方式,我想說的是,我聽不懂英文的情況下,該怎么辦?
字符驗證碼用戶體驗淺談
現在,單一的數字或是字母已經很少見了,原因不用多說,大多是機器識別太容易了。而目前大多數網站的驗證碼是采用數字加字母。那么,我們分析以下的幾種情況:
驗證碼忽略大小寫
一般網站的驗證碼是4位,如果是:大寫字母+小寫字母+大寫字母+小寫字母,那么我共要使用兩次shift鍵,非常的麻煩——手指也非常的累。那么顯然,驗證碼的第一重用戶體驗是:忽略大小寫,這幾年前大多數網站已經做得很好了,依然記得當年,用QQ進行某個操作時要驗證碼,我沒有注意,一直使用小寫字母——居然成功了,這在當時是很少見的。慢慢的,開始有一些網站提示(不區分大小寫)——這是一種進步
去除驗證碼的形近字符
請看下面的四位驗證碼,請你快速的輸入“1ilL”,頭略暈了吧?這四個字符分別是數字1,小寫字母I,大小寫字母L。對此,我們來分析下覺的字符驗證碼共有:[0-9a-zA-Z]共10+26+26=62個字符,其中,近形的有以下的幾組:
i I 1 l L j J
0 o O Q
2 z Z
9 g
可能會混的有以下的幾組:
u U V v
W V
M N
一般的,我們需要去形近的16個字符,這時可用的還有46個字符,那么還有46^4種組合,還是很豐富的。那么,要不要去除“可能會混”的字符呢?我的建議是不要去掉,因為這些普通用戶還是可以在比較短時間內識別的,而在加入干擾線的情況下,普通機器人要識別還是要花點力氣的。
使用PHP生成高用戶體驗的驗證碼
<?php $removes = preg_split('!\s!', 'i I 1 l L j J 0 o O Q 2 z Z 9 g'); $codes = array_merge(range(0,9), range('a','z'),range('A','Z')); $codes = str_replace($removes,'',join('',$codes)); //345678abcdefhkmnpqrstuvwxyABCDEFGHKMNPRSTUVWXY尾記:小中見大,千里之堤善毀于蟻穴。小小的驗證碼改善可能在無形中贏得用戶的好感,又沒有任何成本,何樂而不為?其它的比較現代型的驗證碼技術,可能需要比較高的技術支持,暫不談。