我在處理用戶(hù)敏感信息時(shí),手機(jī)號(hào)碼明文脫敏,真實(shí)的手機(jī)號(hào)碼哈希算法bcrypt。
mobile = [
'value' => '*******2888',
'key' => '$2y$10$QnBgZNXxIEWa0q9yuBx.jePU8u6yUlQx8JGn0M19AtJk9d8unZjo2'
];
前端需要展示用戶(hù)手機(jī)號(hào)碼的地方直接用value,敏感操作需要發(fā)短信的時(shí)候需要用戶(hù)補(bǔ)全脫敏的字符提交后由后臺(tái)進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證后觸發(fā)短信。用戶(hù)登錄情況下除了多一步輸入完整的手機(jī)號(hào)步驟以外沒(méi)啥問(wèn)題。
短信接口使用大廠的接口,盡量保證用戶(hù)隱私安全。
這樣搞壞處是我都不知道用戶(hù)的真實(shí)手機(jī)號(hào)碼了。
在用戶(hù)未登錄的情況下我怎么判斷用戶(hù)的手機(jī)號(hào)對(duì)應(yīng)的是哪一個(gè)賬號(hào)呢?????
以前做微商的時(shí)候吃過(guò)虧,用開(kāi)源項(xiàng)目做了一個(gè)商城。手機(jī)號(hào)是明文的。后來(lái)數(shù)據(jù)庫(kù)被扒了,同一個(gè)團(tuán)隊(duì)下的多個(gè)代理被電信詐騙了。。。過(guò)了好久被叫過(guò)去了解情況,挨了一頓批,說(shuō)沒(méi)有能力保護(hù)用戶(hù)隱私就不要收集用戶(hù)信息,再出現(xiàn)安全問(wèn)題就要被處罰了。
我也是腦子生銹了,剛發(fā)完問(wèn)題自己再看一遍的時(shí)候,想到在用戶(hù)未登錄的情況下進(jìn)行正常登錄操作,提交賬號(hào)密碼后檢測(cè)到異常行為時(shí)跳轉(zhuǎn)到短信驗(yàn)證頁(yè)面,提示信息給出用戶(hù)已經(jīng)脫敏的手機(jī)號(hào)碼,當(dāng)用戶(hù)輸入完整的手機(jī)號(hào)碼時(shí)系統(tǒng)下發(fā)短信。驗(yàn)證通過(guò)后登錄成功。
登錄接口加了限制請(qǐng)求頻率
這樣還可以避免短信接口被刷。前段時(shí)間北京不是有一家公司短信接口被刷了1300多萬(wàn)次,數(shù)據(jù)泄露300多萬(wàn)條數(shù)據(jù)泄露
作為開(kāi)發(fā)者一定要保護(hù)用戶(hù)隱私啊~~~
測(cè)試又遇到新問(wèn)題。就是沒(méi)有辦法保證手機(jī)號(hào)碼唯一性了。
會(huì)導(dǎo)致同一個(gè)手機(jī)號(hào)綁定多個(gè)賬戶(hù)的情況。換個(gè)角度看既然是為了保護(hù)用戶(hù)隱私,手機(jī)號(hào)只是作為一個(gè)輔助驗(yàn)證的工具。允許多個(gè)賬號(hào)綁定同一個(gè)手機(jī)號(hào)好像也沒(méi)啥問(wèn)題。至于重復(fù)注冊(cè)倒不需要擔(dān)心什么,哪個(gè)系統(tǒng)沒(méi)有大量僵尸號(hào),人家愿意我們也沒(méi)必要管那么多啊。有些營(yíng)銷(xiāo)場(chǎng)景要防薅羊毛的再單獨(dú)做策略就好了。
為了用戶(hù)隱私,各位路過(guò)的大佬有好的建議嗎?
睡覺(jué)迷迷糊糊的在跟人爭(zhēng)論關(guān)于開(kāi)發(fā)者為什么看不到手機(jī)號(hào)碼的問(wèn)題,爬起來(lái)補(bǔ)了一個(gè)加解密邏輯,秘鑰和加解密函數(shù)不放到代碼中,單獨(dú)維護(hù)一套獨(dú)立的服務(wù),后端請(qǐng)求返回,遇到必須要看某一個(gè)用戶(hù)的手機(jī)號(hào)碼時(shí)再解密。
這樣做可以最大程度上保證用戶(hù)的隱私信息。即使數(shù)據(jù)庫(kù)泄露,攻擊者也不太可能還原出信息,除非繼續(xù)撞或者攻擊者同時(shí)拿下所有伺服器。
但還是不想留方法來(lái)還原數(shù)據(jù),這樣沒(méi)有真正意義上解決用戶(hù)隱私問(wèn)題。
有時(shí)候我甚至在想,到底是什么原因我們一定要知道用戶(hù)更多的信息嗎????
手機(jī)號(hào)不是密碼,保存明文完全沒(méi)問(wèn)題,充實(shí)不了社工庫(kù),數(shù)據(jù)庫(kù)被扒首先考慮是服務(wù)器或者數(shù)據(jù)庫(kù)端口對(duì)外開(kāi)放,并且是弱密碼甚至無(wú)密碼。
實(shí)在擔(dān)心就用非對(duì)稱(chēng)加密,不過(guò)如果你的服務(wù)器已經(jīng)被第三人控制了,那再怎么加密也是徒勞。
短信接口使用大廠的接口,盡量保證用戶(hù)隱私安全。
國(guó)內(nèi)所謂的大廠早已把你的個(gè)人信息包括性別、年齡、職業(yè)、收入、家庭及人際關(guān)系、消費(fèi)能力、興趣愛(ài)好偷偷記錄下來(lái),并且打包賣(mài)給全世界的廣告公司。這句話(huà)有點(diǎn)地獄笑話(huà)的感覺(jué)。
只要我不記錄,我就安全......
據(jù)我所知大廠的脫敏并不是底層不記錄,數(shù)據(jù)庫(kù)該記錄啥還是照常記錄;
只是查看數(shù)據(jù)和接口返回處,對(duì)敏感數(shù)據(jù)進(jìn)行脫敏處理而已....
你說(shuō)之前被脫褲了,那解決問(wèn)題應(yīng)該是理清楚在哪里存在問(wèn)題然后修復(fù)吧.........
如果是我要加密 我會(huì)選擇aes加密 ,用業(yè)務(wù)代碼混淆aeskey后 存儲(chǔ)于另外一個(gè)表
解密方法也是在業(yè)務(wù)代碼里,哪怕是拿到服務(wù)器代碼,不花個(gè)半天時(shí)間也找不到電話(huà)對(duì)應(yīng)的解密key在哪個(gè)表。
最終怎么解決的呢?如果加密存儲(chǔ),模糊查詢(xún)?cè)趺刺幚淼模?/p>
初衷是保護(hù)用戶(hù)隱私,想讓加密后的數(shù)據(jù)不可逆。做了一些犧牲,對(duì)用戶(hù)來(lái)說(shuō)只有找回賬號(hào)密碼體驗(yàn)不好以外其他的都還好。綁定手機(jī)只是多了一個(gè)輔助驗(yàn)證的方式。用戶(hù)主要操作還是要基于賬號(hào)。或者是做一些擴(kuò)展綁定郵箱、2fa。敏感操作觸發(fā)風(fēng)控就要求用戶(hù)短信驗(yàn)證或者安全級(jí)別高的2fa驗(yàn)證。
這樣做管理員也無(wú)法知道用戶(hù)的手機(jī)號(hào)碼是什么,后4位可能會(huì)有相同的情況。如果是售后什么的可能要根據(jù)其他信息來(lái)判斷。
還有就是同一個(gè)手機(jī)號(hào)可能會(huì)綁定多個(gè)賬號(hào)的情況,不建議僅使用手機(jī)號(hào)進(jìn)行登錄。但可以通過(guò)手機(jī)號(hào)找出該手機(jī)號(hào)曾經(jīng)綁定過(guò)的賬號(hào)。這個(gè)過(guò)程需要將用戶(hù)的手機(jī)號(hào)跟所有賬號(hào)進(jìn)行驗(yàn)證(不效率)。
如果用戶(hù)忘記賬號(hào)或者密碼。使用手機(jī)號(hào)找回賬號(hào)是找回所有賬號(hào),用戶(hù)提交找回時(shí)除了提交手機(jī)號(hào)以外還要提供安全的電子郵箱,然后通過(guò)event事件處理。等處理完自動(dòng)給用戶(hù)發(fā)送郵件。在郵件中點(diǎn)擊鏈接進(jìn)入,然后選擇賬號(hào)進(jìn)行重置密碼。
用戶(hù)通過(guò)手機(jī)號(hào)找回賬號(hào)密碼,我先模糊查詢(xún)后四位,然后將用戶(hù)提交的手機(jī)號(hào)跟密文進(jìn)行校驗(yàn)。
手機(jī)號(hào)碼不用加密的,主要在于數(shù)據(jù)庫(kù)安全。涉及到顯示手機(jī)號(hào)的接口時(shí),記得做脫敏處理,不要把完整的手機(jī)號(hào)碼顯示出來(lái)就行。感覺(jué)樓主屬于一朝被蛇咬