微信小程序安全需求基線
VSole2021-09-10 08:30:00
微信小程序作為一款輕量級的應用,因其有著較強的靈活性,開發成本低,推廣裂變快等特點,在很多領域得到廣泛的應用。
本文基于小程序在電商領域的應用場景,將常見的安全問題進行分析匯總,整理成安全需求基線,以期不斷地完善,然后在更多的業務場景下應用。
01、基礎安全
- 涉及數據敏感,采用私有化部署。
- 通過負載均衡、內容分發等技術,保障業務高可用。
- PS:比較大的圖片要進行優化,同時避免出現比較大的圖片帶有隨機參數(jpg?t=xx),一旦引流,所有圖片請求回源,將導致帶寬跑滿現象。
02、重點功能
- 用戶注冊授權,添加隱私政策。
- 文件上傳,對上傳文件的類型、大小、擴展名等信息進行校驗,防止任意文件上傳。
- 用戶自定義發布的內容需進行內容審核(例如:文本、圖片、視頻等),可調用公有云API 檢測。
03、業務安全
- 防越權繞過,對用戶權限進行認證。
- 例如,遍歷用戶id導致敏感信息泄露,需對用戶進行權限驗證。
- 防業務邏輯繞過,防止用戶可以直接執行后面的流程,從而繞過某些階段。
- 例如:積分兌換的場景,將積分扣減和兌換拆分為兩個接口,攻擊者可直接執行兌換,不執行積分扣減。
- 防數據篡改,重要業務數據需后端進行校驗。
- 例如:用戶的游戲成績直接篡改可用于游戲作弊,需增加簽名認證,防止數據被篡改。
- 防條件競爭繞過限制。
- 例如:在做積分抽獎時,應考慮如何應對高并發攻擊。
04、敏感信息保護
- OpenID、unionid作為微信用戶的唯一身份標示,禁止在業務系統的URL、返回參數等地方使用OpenID、unionid。
- 禁止在小程序前端代碼中,寫入明文的AppId和secret、AccessKey及其他敏感配置信息。
- 敏感數據前端展示,應進行脫敏處理,敏感數據包括但不僅限于姓名、手機號、地址等。
05、身份鑒別
在實現會話管理功能時,應同時滿足以下幾條要求:
(1)建立唯一的,具有一定復雜度的用戶會話標識。
(2)通過OpenID或unionid識別用戶身份,并建立賬號綁定關系。
(3)應具有超時退出機制,超過一定空閑時間,會話標識失效。
(4)禁止使用不安全的鑒權方式,例如使用手機號鑒權,可能存在信息泄露的風險。
06、其他
- 正式發布前,要關閉小程序調試模式。
- 進行滲透測試,針對前端代碼和小程序API進行安全檢測。
- 對小程序前端代碼進行必要的保護措施,如代碼加密、壓縮、混淆、反調試等。
VSole
網絡安全專家