CSDN 泄露用戶密碼給我們什么啟示
近日,網絡、電視上大家談論的都是 “CSDN 泄露用戶密碼” 事情。我們除了說句“不像話、不應該”之外,還能得到什么啟示呢?
首先,我覺得存在管理問題。這次是泄露密碼,之前移動、聯通泄露用戶的手機號碼,再之前的網絡上把與用戶電子郵件大批量販賣。為什么沒有公司從制度上進行規范管理?沒有聽說 CSDN 抱怨員工不遵守保密協議,讓員工簽個保密協議很難么?給員工培訓一點職業操守知識很難么?只能說,我們的多數公司里,領導們忙著賺錢、與人斗爭其樂無窮、與上層社交,沒有時間去管理公司。
簽署保密協議也許不能徹底解決問題,但并不意味著不值得做。正如,交通部每年都在調整規定、公路上提示標志,我們不能說“你不能徹底解決問題,所以什么都不要做”。從管理上講,解決了一部分問題,就是成功。
其次,從技術上講,可以把數據庫的備份、批量導出(dump) 功能封鎖起來,只開放少數幾個信得過的人。做起來很容易,為什么都不做呢?很多技術頭頭不懂技術,只會吹些概念。說句不客氣的話,很多技術頭頭缺乏思考問題的能力,也不屑于去思考。正如同 EJB 剛開始推行的時候,很多人盲目跟風,連我說句”EJB 開發起來這么費勁,不好用”都會被潮水般的口水淹倒。
第三,系統架構師缺乏最基本的技術上的常識:密碼不能明文保存、密碼不能用可逆加密算法。
正如很多國內的網站,會有“找回密碼”這個功能。我就納悶了,Windows/Linux 操作系統、Oracle 數據庫,忘記了密碼,是沒有“找回密碼”這個功能,只能由管理員改成一個新密碼。這是一個最最基本的常識,為什么會有人在自己開發的系統中,提供“找回密碼”這個古怪的功能呢?除了用”明文保存密碼“之外,CSDN 在用戶管理模塊犯的錯誤不少:
a. 不能更改用戶名,而Windows/Linux 操作系統是可以更改用戶名的。其實要允許更改用戶名,也很容易,數據庫設計時,用邏輯主鍵(自增長或uuid)、不用業務主鍵(用戶名)就可以。
國內太多系統都有這個問題。為什么那么多程序員寫了 n 年的程序,都抄襲不了”Windows/Linux 操作系統是可以更改用戶名”這個功能?我們不是“山寨/抄襲/模仿”大國么?怎么這點小東西都模仿不了?
公安局都不限制我改名字,網站IT系統憑什么不讓我改名字?讓用戶能夠改名字,是很難做到、還是他們覺得用戶改了名字然后網站就少了幾塊肉?限制用戶改名字,這難道是用戶需求?
b. 用戶名不區分大小寫。任何系統,允許這樣兩個用戶名同時存在都是奇怪的:jack/Jack。Windows 是用戶登錄時是不區分用戶名大小寫的,Oracle 數據庫也是,我們的系統呢?
c. 加密密碼應用不可逆加密算法。見過太多用可逆加密算法來加密密碼的,包括很多大大的軟件公司。
IT系統保存密碼的主要用途在于,驗證用戶的身份。不可逆加密算法,可以完成這個任務。明文保存密碼、用可逆加密算法保存密碼,都存在泄漏密碼的風險。而用不可逆加密算法,不存在泄漏密碼的可能,因為我們根本就沒有保存密碼,我們內部的IT人員,都無法破解用戶密碼(這點很多IT公司做不到)。
第四,CSDN 不道歉、不賠償的態度,也在公關上失了分。哪怕 CSDN 說是極個別離職員工干的、哪怕現任產品總監范凱說這是前任沒有做好,從廣大用戶來看,你們是一個集體,名字叫 “CSDN 網站”。舉個例子來說,如果我們買了個手機,用不了,手機廠商發表申明,說”這是某個前員工在里面撒了泡尿,我們不道歉不賠償“,是不是會鬧大?哪怕給每個用戶送一點網站積分作為補償,也是一種態度。事情還在討論進行中,電視臺還在播放新聞,CSDN 居然把相關解釋從首頁刪除,這種做法,也是很不可思議的。
第五,范凱說數據庫從Windows Server上的SQL Server遷移到了Linux平臺的MySQL數據庫,解決了CSDN帳號的各種安全性問題。CSDN 似乎沒有發生過因為用了 SQL Server 導致出現安全性問題 x 次。這個說法也顯得不知所云、沒有針對性。
第六,自行開發軟件不如找專業軟件公司開發。
理由很簡單,如果找軟件公司A,效果不好,我們可以換成軟件公司B;B公司不行我們可以換C。換來換去,總不會所有的公司都不靠譜吧?如果自己養的程序員,開發不好,怎么辦?全部開除?有點難度。重新招人?正如范凱所說”組建了新的研發團隊“,新團隊能力、做事態度未經驗證。老的程序員怎么辦?閑養著?不是辦法。新招聘進來的技術人員,如果再不行,怎么辦?
開發軟件如同寫作文,看上去難度不大,基本語法初中都已經學完了,但不等于隨便看到一個寫得不好的文章,我們都可以自告奮勇說,“我可以比你寫得好”。
寫軟件也是如此。你能看出別人的軟件問題,并不等于你能寫出比他更好的軟件。很多公司經理都不明白這個道理。
第七,其實還有個問題,這次爆露得不明顯。那就是:不懂技術的老板,招聘技術總監,很多時候是會看走眼的;技術總監長期不干編程工作,招聘程序員,很多時候也是會看走眼的。
第八,我們的系統架構師,總是自視甚高,覺得比任何人都強,其實不然。CSDN 自開發論壇,自然是覺得,可以比那些開源論壇、商業論壇軟件,開發得更好。
結果如何?亮點在哪里?我真不明白,就弄個論壇,用 phpbb 不就行了么?折騰來折騰去,勞神傷財不討好。
更改記錄:
第三條、第八條的主語,從"程序員"換成"系統架構師"。原因在于:這些事情,不是程序員能夠決定的。所以,責任人應該是"系統架構師"。

浙公網安備 33010602011771號