跳到主要內容

[轉載] 「無效的用戶名或密碼」:這種設計真的糟透了

優化系統設計流程的小細節
文章来自 36氪

如果登錄時輸入了錯誤的用戶名(通常是Email)或者密碼
大部分系統會彈出這麼一句話:Invalid Username or Password(無效的用戶名或密碼)
系統不會告訴你究竟是哪一個輸錯了,因為他們是特意被設計成這樣的

這樣做的原因,是出於安全性
如果有人惡意嘗試破解,具體告訴他們密碼錯了就意味著Email是對的 (帳號存在)
無形中為他們排除了一個選項
遺憾的是,這種設計顯然低估了人們的智商

99.9% 的網站只允許一個Email註冊一個帳戶
所以如果你真的想知道某個帳戶存不存在
只要試著用相同的Email再註冊一遍就可以了
如果註冊失敗了,就說明用戶名是對的

也就是說,「無效的用戶名或密碼」這句話的設計根本達不到預想的安全防禦目的
這樣的設計不僅沒有安全價值,更重要的是,它把普通用戶登錄時的用戶體驗搞得很糟糕

用戶登錄輸入錯誤的用戶名或密碼導致系統反映錯誤
這時系統如果不回給用戶一個準確的反饋訊息,不告訴你是用戶名出錯還是密碼出錯
對用戶來說完全無益於改正輸入錯誤,是一個非常糟糕的體驗

「無效的用戶名或密碼」這個設計,不能說是安全性和用戶體驗之間的一種權衡
因為它本身不存在安全性的優點
真正在安全性和用戶體驗之間做出的權衡設計應該是這樣的:
你可以保留登錄系統裡的「無效的用戶名或密碼」
但是當用戶嘗試用Email註冊時,系統應該往Email裡發送一封可以直接完成剩餘註冊過程的郵件
這樣除了真正擁有該Email的用戶,其他人都無法知道這個Email是否註冊過賬戶

如今為了登錄安全,越來越多的網站開始使用其他設計方法:
比如使用動態條形碼技術的雙重驗證;
與LastPass或者1Password等第三方密碼管理軟件的結合;
與 iPhone 手機Touch ID的指紋識別技術結合;
甚至是直接捨棄密碼的無密碼登錄系統等。

但現在太多的網站還保留著「無效的用戶名或密碼」這種蹩腳的設計。
這其實是一個非常小的細節,但背後的設計邏輯是很有問題的
這反映出網站系統的設計就應該是要多方位配合的,像這種預防錯誤的登錄系統
如果沒有註冊系統的配合就是形同虛設,白白拉低用戶體驗而已

留言