• 0

    從網站驗證碼談用戶體驗

    pjiaxu 12年前發布 | 24K 次閱讀 用戶體驗 驗證碼

    多數網站為了安全起見,在提交內容時多增設有驗證碼這個功能,從早期單一的數字驗證到現在多功能化驗證,甚至是網易163郵件已經推出了臉部識別登錄測試等。本文,就普通的網站驗證碼一事,談談用戶體驗這件細微的事。...

    • 驗證碼的目的
    • 常見驗證碼的大概分類
    • 令人難以忍受的驗證碼
    • 字符驗證碼用戶體驗淺談
    • 驗證碼忽略大小寫
    • 去除驗證碼的形近字符
    • 使用PHP生成高用戶體驗的驗證碼
    • </ul> </blockquote>

      驗證碼的目的

      驗證碼大多是為了防止機器人向網站傾銷大量垃圾信息。

      常見驗證碼的大概分類

      • 單一的字符圖片
        • 數字
        • 字母
      • 問答型
        • 公式——簡單的數學運算
        • 選擇性問答——給用戶幾個答案,讓用戶填寫
      • 混合型——字符+音頻
      • 互動型——讓用戶進行某個操作,如拉動某個圖標

      本文著重談論單一字符型的用戶體驗。

      令人難以忍受的驗證碼

      下面是一張驗證碼

      20120606092509_10504.jpg

      很顯示,這是一個中文網站,用的卻是外國流行的驗證碼方式,我想說的是,我聽不懂英文的情況下,該怎么辦?

      字符驗證碼用戶體驗淺談

      現在,單一的數字或是字母已經很少見了,原因不用多說,大多是機器識別太容易了。而目前大多數網站的驗證碼是采用數字加字母。那么,我們分析以下的幾種情況:

      驗證碼忽略大小寫

      一般網站的驗證碼是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

      尾記:小中見大,千里之堤善毀于蟻穴。小小的驗證碼改善可能在無形中贏得用戶的好感,又沒有任何成本,何樂而不為?其它的比較現代型的驗證碼技術,可能需要比較高的技術支持,暫不談。

     本文由用戶 pjiaxu 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  • sesese色