如何設計“找回用戶帳號”功能
因為《騰訊帳號申訴的用戶體驗》一文中好多人覺得騰訊申訴是世界級先進的,并讓我拿出一個找回用戶的帳號的功能來。本來不想寫的,因為大家看看其它系統的就行的,但是,很明顯有些人就是很懶,也不會思考,而且不會觀察,所以,我就只好寫下這篇科普性常識性的文章。
在行文之前,我得先感謝騰訊公司的至少30名員工在《騰訊帳號申訴的用戶體驗》一文后的回帖(我 STFG(Search The Fucking Google)看到了你們使用的那個固定 IP 在各個大學論壇上的騰訊的招聘廣告),我感謝你們主要有兩點:
- 你們有半數以上的人留下的是 gmail 而不是 QQMail/Foxmail 的電子郵件,這點讓我感到很欣慰。
- 你們在加班到晚上11點的時候都能在本站回復,的確如你們的 Andy Pan 所說,你們的核心競爭力很強,包括水軍方面。
好了,讓我正式談談這個設計。找回用戶帳號通常就用三個事就可以了:郵箱,安全問答,手機。
郵箱,安全問答,手機
大多數的系統都會使用郵箱和安全問答,這足夠了,很多系統直接用郵箱做帳號名(Apple ID,非死book,新浪微博 ….),這樣一來,就算你的系統口令被盜,帳號的是改不掉的,于是你可以用郵箱找回(注:這些系統都會驗證你的郵箱是否正確)。但是,如果用郵箱做帳號,會導致你的郵箱暴露了,這樣為成為垃圾郵件的受害者,而且如果你還比較2的把郵箱的口令和帳號的口令設置成一樣的,那么就相當坑爹了(你可以看看本站的這篇文章——如何設計你的口令)。所以,但凡是用郵箱用為帳號的系統都不會讓人看到你的注冊郵箱,比如,大家就不知道我新浪微博帳號注冊的郵箱,就算是知道也應該是受信的人知道(新浪微博帳號的郵箱地址的默認可見度是“你關注的人”)。
這里要說一下,Google Mail 使用的是電子郵件,安全問答和手機。你可以使用其中一種找回口令。gmail 最漂亮的用戶體驗是其會提示你,你綁寫的郵箱(哪家公司的郵箱和帳號名的第一個字母)和手機(3個尾號)。MSN 和 gmail 相似,也會提示你綁定的郵箱,也可以使用手機,還可以使用你設置好的受信 PC,以及通過客戶支持(通過客戶支持——收集你注冊時用的名字,生日,國家地區,安全問題,使用過的口令,最近發送過的郵箱標題,聯系人等,或是你綁定過的信用卡信息,但是不會有身份證)。
使用手機的一般是安全性比較高的網站,比如:淘寶、Gmail 等。這樣,使用手機找回口令也不錯。因為你注冊的安全問答你可能會忘了,你的綁定的郵箱也可能忘了口令,而很多木馬可以盜取你的這些電腦上的安全問答或郵箱口令,但是這些木馬程序盜不走你的手機(注:在移動互聯網時代很可能會盜取你的手機上的信息,但是也盜不走你的手機號——無法像郵箱那樣改個口令就盜走了)。你會說,手機還不是會丟失,但是你要明白,你丟失的手機,你是可以停機的,可以通過你的手機密碼卡或是身份證恢復你的手機號的。另外,使用手機的好處還在于,我的系統不需要收信你的真實信息(如:姓名,身份證,住址等),這些真實信息的驗證交給移動運營商驗證就好了。在程序設計的里,我們把這種事叫“解耦”。Amazon 就一種通過電子郵件,然后通過你使用過的信用卡后四位,以及帳單的郵寄的郵政編碼,如果你的郵箱變了,沒問題,打電話給客服吧,客服會問你的錢行卡號和帳單地址,電子商務的好處就是可以有信用卡或銀行卡來恢復號。,因為這——把用戶的真實信息“解耦”到了銀行,并“耦合”和銀行方面的安全策略。很明顯,銀行和移動公司的安全級別更高,而且用戶也更信任他們。最好不要自己收集用戶的真實信息,要是丟失了,你就麻煩了(在國外你就要被起訴了)
在這里,你可能會有疑問,如果我的帳號口令丟失了,那么盜取者會進入我的系統改我的郵箱,改我的手機,改我的信用卡等,那不也一樣嗎?我想說,對于郵箱和手機,其和密碼的級別一樣,你改密碼的時候,你都要輸入舊密碼,所以,你改郵箱和手機的時候也要使用舊的郵箱和手機。關于你綁定的銀行卡或信用卡號,就算是自己也看不見的(只能看見四個尾號),這就就可以防盜了。當然,盜電子商務帳號的人一般會用你一帳號買東西,但是其會遇到另一個麻煩,那就是要面對銀行方面的審計工作——1)對于銀行卡通過銀行的網銀,對于信用卡則要受到信用卡口令和簽名的驗證。
一些人說,QQ 的帳號申訴過程的“美妙”在于其他盡可能多的收集你的信息,這樣一來,反而是安全的,因為密碼容易被盜,而你的那么多的信息則不容易被盜。這樣認識只對了一半。真正的安全系統是協同整個社會的安全系統做出來的一道安全長城,而不是什么都要自己搞(當然,我們都知道騰訊的 DNA 就是什么都要自己搞,連 FBI 和 CIA 的事也已經在搞了),什么自己都搞反而不安全了。
其它討論Q&A
問題一:通過申訴帳號靠不靠譜?
明顯不靠譜,而且還很愚蠢。這反而成了惡意者的溫床。他人可以通過申訴讓正常人的帳號失效,這是一件多么愚蠢的事啊!(我的 QQ 帳號前兩天不就被這樣攻擊了嗎?)
問題二:通過聯系人恢復帳號靠不靠譜?
不全然靠譜,因為你的 QQ 總是會有陌生人加你,你的郵箱聯系人也會有一些你不受信的人。那些人可能就是攻擊者的小號。所以,如果你要通過聯系人的話,就不要像 QQ 或 MSN 那樣坑爹的做法,讓用戶自己來選。而是要像 非死book 那樣的做法——系統隨機挑些人來讓你認。
問題三:在注冊時設置受信的聯系人靠不靠譜?
看似靠譜,但是個人覺得還是還一點問題。因為受信者通過電子信息無法分辨是本人還是盜號者,還要受信者實際聯系一下對方。這就好像我們在手機號存電話號碼的時候,寫上了爸爸,媽媽這樣的字眼,這樣當惡意者拿了你的手機后,就可以向你的家人敲詐了,因為其直接就可以叫出對方那頭的人和被攻擊者的關系。
問題四:恢復帳號的時候收集用戶的真實信息靠不靠譜?
這要看是什么情況了。如果用戶在注冊時提供了這些真實信息,就靠譜,如果沒有就相當不靠譜。試想:你去銀行開戶存錢的時候,銀行沒有讓你出示身份證,只讓你設了個口令。然后我就可以用我的身份證去重置你的口令。你覺得這個事是不是相當的坑爹?!
(如果你還有什么樣的問題,我可以在繼續更新并回答你的問題)
——————————
希望你現在明白,關于騰訊的帳號申訴過程,看上去像那么回事,實際上漏洞百出。當然,我不能說騰訊是愚蠢的,因為人家搞得那么大的企業,我只能說人家是在下一盤很大的棋……
來自: coolshell.cn