前言:作產品,安全問題是一個不能不考慮的問題,稍有不慎就會發生相似「薅羊毛」「信息被盜」等問題。不少時候咱們都在尋求技術方面的解決方案,但其實有一些簡單的產品策略,也能夠從必定程度上減小安全問題的發生。今天會從以前遇到過的社區「垃圾帖」問題入手,探討產品設計層面上對於安全問題的緩解辦法。web
問題
在作社區產品時,常常會遇到不少的垃圾內容,較爲常見的是一類包含色情信息、外鏈引流信息的內容。這種內容不少都是大面積批量發出,單純靠人工刪除遠遠跟不上發佈的速度,致使整個社區中充斥着這類違規內容,不只影響用戶體驗,還會存在法規上的風險。 shell
分析
採集這些垃圾帖的內容和發佈用戶信息後,發現這些垃圾內容有如下一些特徵:數據庫
- 發佈的內容大同小異,基本都附有手機、微信、外鏈等內容
- 內容的發佈者絕大部分爲剛註冊的新用戶,極少數的爲正經常使用戶
- 內容的發佈者 IP 地址和 MAC 地址均不一致
能夠看出這些特徵中有以下一些共性:安全
- 發佈者的目的是但願把用戶向站外引流,但與社區自己不構成競爭關係
- 發佈者爲惡意用戶批量註冊的帳號,且沒法用禁用 IP 或 MAC 地址來屏蔽
解決方案
不難發現,整個垃圾內容發佈的流程中存在兩個重要節點:用戶帳號批量註冊和垃圾內容發佈,所以考慮從這兩個節點入手解決。服務器
1. 針對帳號體系微信
- 在新用戶註冊時,經過增長驗證碼(短信驗證碼、圖片驗證碼等)增長用戶註冊成本,抵禦部分惡意註冊的現象
- 收集註冊數據,對比正經常使用戶的行爲,對非正經常使用戶進行帳戶凍結
- 在用戶登陸時,增長圖片驗證、人機識別混合驗證
- 限制用戶的登陸頻次
- 高危帳戶(屢次異地登陸等)進行校驗或強制要求修改密碼
2. 針對內容發佈post
- 在用戶發佈內容時,增長圖片驗證、人機識別混合驗證
- 針對用戶發佈的內容,增長關鍵字校驗,觸及違規或敏感詞彙的內容不容許發出
- 限制新註冊用戶的日發佈內容的數量
這樣就能夠了嗎?
增長了這些限制,上線以後,不少的問題暴露了出來:優化
- 因爲增長了很是複雜的驗證機制,致使用戶的註冊、登陸和內容發佈受阻,新增用戶、活躍用戶和內容生產量有明顯降低
- 違規發佈者爲突破每日發佈限制,開始盜取老用戶的帳號信息,進行垃圾帖發佈
- 增長屏蔽的關鍵詞永遠是滯後的,只能等新的垃圾帖內容發出后豐富關鍵詞庫,但這時垃圾帖已經產生
- 關鍵詞「一刀切」的屏蔽方式,很容易將正常內容也過濾掉,打擊用戶內容發佈的信心。能夠猜一下下圖爲何被屏蔽:
因此先前的策略起到了必定的效果,可是看起來「得不償失」。這種狀況應該如何應對呢?細化規則。網站
解決方案 2.0
以前的策略之因此存在問題,是由於未能作到更細粒度的針對,「寧錯一千不漏一個」。所以要想解決這個問題,最好的辦法就是細化攔截規則。設計
1. 針對驗證碼:
- 增長每日免驗發佈閾值
- 增長免驗權限用戶(高級別,安全風險低的用戶能夠免驗,這部分用戶大多爲活躍用戶,帳號被盜取可能性較低)
- 採用更簡單的驗證方式(好比從圖文式驗證碼改成行爲式驗證碼)
2. 針對關鍵詞過濾:
- 將關鍵詞劃分安全等級,不一樣等級進行不一樣處理,如低等級關鍵詞用「**」代替,中等級關鍵詞僅對發佈者可見,其餘用戶不可見,高等級關鍵詞直接禁止發出
- 創建內容過濾池,對已屏蔽的內容進行記錄,若出現正常內容被過濾的狀況,則能夠手動恢復
- 增長新關鍵詞後,支持將歷史內容從新過濾一次
一些疑問
疑問:爲何要在不相關的社區發佈色情信息呢?批量註冊新用戶是怎麼作到的,哪裏來的這麼多手機號?老用戶的帳號信息是如何被盜取?......
- 出於 SEO 考慮,不少色情內容或者網站爲了引流,會在高權重的網站內發佈相關內容,用戶在搜索時相關的內容即會優先展現,因此有專門的工做室承接垃圾內容的推廣。
- 首先不少網站註冊時不要求用戶輸入手機號,所以能夠經過註冊機,直接經過 post 請求與服務器交互,就能夠完成批量註冊;若是是須要手機號的註冊,則能夠經過灰色產業購入不帶有身份信息的「黑卡」,成本低,投入產出可觀。
- 若自己站點用戶登陸時密碼傳輸校驗正常、token 未被破解或劫持,則很大可能用戶信息泄露爲「撞庫」致使。所謂撞庫,簡單來講就是非法入侵者經過技術手段(漏洞注入、webshell,etc.)或者獲取已有社工庫,創建一個較爲完整的數據庫後,嘗試用這些庫中的信息去登陸其餘系統。通常因爲前期數據採集較爲詳實,撞庫所用的字典精度比暴力破解的高,所以成功率也會高。
一些思考
- 一些須要從技術角度的問題,從產品層面上也能夠作一些優化
- 解決問題時須要找到問題的關鍵節點,學會提取共性和發現差別
- 數據監控很重要
- 問題的解決方案須要進行相應調整,直到找到最優解
- 嘗試去深刻業務,分析業務,找到利益矛盾點,對解決問題大有裨益
Ps:一些實用的外接服務(非廣告):
- 極驗驗證
- 網易易盾