注冊登錄功能設計01:注冊功能中的風控策略
對于多數產品而言,用戶賬戶體系都是必不可少的,有些產品擁有獨立的賬戶體系,有些則授權給第三方。但無論是自身獨立的賬戶體系,還是授權于外部的賬戶體系,對于這一模塊的風險控制是十分重要的。
作為產品經理,在設計賬號注冊/登錄基本功能時,也必須考慮隱藏在功能背后的產品策略,其中很重要的一項就是賬號的風控策略。
注:有的互聯網公司沒有自己的獨立賬號體系,只有微信/微博/QQ第三方賬號授權登錄,這部分的工作(包括賬號管理、賬號安全、業務授權)相當于是交給了第三方。
為什么需要賬號風險控制?
防止賬號被盜:互聯網用戶賬號信息泄露嚴重,黑客/入侵者利用“社工庫”①已收集的用戶名、密碼等信息進行撞庫②攻擊,可以獲取平臺用戶賬號,給用戶賬號和資產帶來風險;
防止惡意刷號:賬號本身如果能產生經濟價值(如擁有游戲資產的游戲賬號、擁有大量粉絲的社交賬號等),惡意者通常會大量注冊賬號、轉售進行獲利,留給平臺的則是大量非真實用戶的垃圾賬號;
防止惡意攻擊:防止惡意者高頻次請求攻擊,導致服務器癱瘓、宕機,影響正常用戶使用。
- 注①:撞庫是黑客通過收集互聯網已泄露的用戶和密碼信息,生成對應的字典表,嘗試批量登陸其他網站后,得到一系列可以登錄的用戶。很多用戶在不同網站使用的是相同的賬號密碼,因此黑客可以通過獲取用戶在A網站的賬戶從而嘗試登錄B網址,這就可以理解為撞庫攻擊。
- 注②:社工庫,就是黑產的地下數據庫,這些庫里保存了大量真實的、配對的用戶名/密碼、身份證號等用戶信息。其廣博的深度,恐怕不比任何“大數據公司”差。黑客們盜取的數據,都留存在社工庫中,供黑客們查詢。
注冊功能中的風險點和風控目標
常見的手機號注冊功能
郵箱注冊功能
1、賬號驗證功能的風控
當用戶輸入手機號,光標離開“手機號碼”輸入框時,通常我們會立即給用戶反饋,這個手機號是否已經被注冊,示例如下:
在這里,實際上是前臺頁面向服務器發起了一次查詢請求,服務器查詢賬號并返回查詢結果,從而可以在頁面上給用戶進行正確的反饋。
由于賬號文本框需要向服務器請求賬號查詢結果,如果我們沒有設計風控體系。在這里惡意者可以通過這個功能,做以下幾個事情:
- 利用已經獲得的社工庫賬號資料,通過技術手段,大量驗證“用戶賬號是否存在”,從而知道手里的賬號哪些是已經在平臺上注冊過的賬號。
- 賬號驗證需要向服務器發起請求,因此惡意者可以用技術手段大量發起請求攻擊,導致網絡、服務器和數據庫癱瘓甚至宕機。
因此在這里,我們需要做一個關于“賬號輸入框”的風控策略目標:禁止非正常的、大量的“驗證賬號是否存在”的服務器請求;
2、手機賬號真實性的風控
為了保證用戶輸入的手機號是其本人的,通常我們都需要設計短信驗證碼功能;
3、郵箱賬號真實性的風控
為了保證用戶輸入的郵箱是其本人的,通常我們都需要設計郵件驗證碼功能或者通過郵件進行激活確認的功能;
4、短信通道、真實手機號的風控
短信驗證碼是業務系統利用運營商或者代理商的短信通道,下發驗證碼,對用戶所輸入的手機號進行真實驗證的功能。
為了防止惡意者攻擊短信通道,或者隨意輸入其他人的手機號濫發短信給其他人造成騷擾,這里需要增加兩項風控:保護短信通道、減少對其他手機號短信騷擾。
5、注冊請求的風控
當用戶將所有信息都填寫完成,點擊“立即注冊”按鈕即可向服務器發起請求,程序判斷用戶填寫的信息完整無誤,則返回注冊成功的提示;如果判斷某些輸入項有問題,則返回對應的錯誤提示。
這里需要增加兩項風控:防止用戶惡意大量請求攻擊服務器,防止用戶繞過輸入項驗證直接提交注冊請求。
綜上所述,在注冊功能中,我們需要考慮的風險點和風控目標可以歸納為:
- 禁止非正常的、大量的“驗證賬號是否存在”的服務器請求;
- 確保輸入的手機號是用戶本人的、真實的手機號;
- 郵件驗證碼功能或者通過郵件進行激活確認的功能;
- 保護短信通道不被惡意者大量刷短信,造成堵塞;
- 減少對其他手機號碼的短信騷擾;
- 防止惡意用戶大量發起注冊請求,攻擊服務器;
- 防止用戶繞過輸入項驗證,直接發起請求。
如何設計風控策略
為了實現以上風控目標,我們需要對用戶的操作進行一些限制。根據我們上面確定的風控目標,利用一切可以利用的數據來設置風控策略。
1、通過IP來進行限制
為了防止大量的請求攻擊,我們可以通過IP對請求上限做出限制。
2、通過Cookie來進行限制
Cookie的風控觸發條件和限制策略與IP相同,但是閥值不同。
3、通過用戶行為間隔來進行限制
4、設置短信發送限制
通常,短信通道提供方本身就會對同一個手機同一天收到的短信條數進行限制
不過作為業務方,也需要對短信下發功能進行限制,以免被惡意用戶利用。
5、設置激活確認郵件
通常,通過郵箱注冊賬號,平臺會給郵箱發送一封驗證郵件,一種是驗證碼;一種是需要點擊郵件中的激活鏈接進行激活確認。
郵箱驗證碼方式
激活鏈接方式
總結
注冊是賬號/會員體系/SSO等功能的前提,在源頭做好賬號風控是賬號安全和賬號管理非常重要的一環。因此在設計注冊功能時,設計合理且有效的風控策略也是產品的一項重要工作內容。
作者現任職空中網產品經理,負責空中網基礎平臺產品,包括賬號通行證、充值、支付,密保APP、客服等產品,微信公眾號:產品520(chanpin_520)
本文由 @藍翼Ethan 原創發布于人人都是產品經理。未經許可,禁止轉載。
題主有沒有聯系方式呀~
注冊提示“驗證賬號是否存在”
這樣是否存在用戶信息泄露的風險?
關于Cookie那邊有幾個疑問:
1、如果用戶清除緩存,那么Cookie也被清除了,所以用Cookie來限制就無法實現了?
2、如果客戶端瀏覽器將Cookie功能禁用,或者不支持Cookie怎么辦?例如,絕大多數的手機瀏覽器都不支持Cookie
剛看到拉勾和京東在注冊時,都會提示輸入賬號的注冊狀態,有些疑問,文章下文就解疑了,贊!
好文~只是后續的文章沒有發出來嗎
游戲公司,賬號需要實名認證,所以需要加上姓名和身份證,確實填的比較多
不錯,基礎設置是要弄好
既然注冊時需要填寫姓名和身份證號碼以及手機號,可以通過手機認證接口,認證姓名、身份證號碼和手機號碼的一致性
如果手機號主人和注冊賬戶的用戶不同呢?
誰先注冊就是誰的
難得的好文 收藏之
謝謝關注~