1. 【強制】隸屬于用戶個人的頁面或者功能必須進行權限控制校驗。
說明:防止沒有做水平權限校驗就可隨意訪問、修改、刪除別人的數據,比如查看他人的私信內容、修改他人的訂單。
1. 【強制】用戶敏感數據禁止直接展示,必須對展示數據進行脫敏。
說明:查看個人手機號碼會顯示成:158\*\*\*\*9119,隱藏中間4位,防止隱私泄露。
1. 【強制】用戶輸入的SQL參數嚴格使用參數綁定或者METADATA字段值限定,防止SQL注入,禁止字符串拼接SQL訪問數據庫。
2. 【強制】用戶請求傳入的任何參數必須做有效性驗證。
說明:忽略參數校驗可能導致:
- page size過大導致內存溢出
- 惡意order by導致數據庫慢查詢
- 任意重定向
- SQL注入
- 反序列化注入
- 正則輸入源串拒絕服務ReDoS
說明:Java 代碼用正則來驗證客戶端的輸入,有些正則寫法驗證普通用戶輸入沒有問題,但是如果攻擊人員使用的是特殊構造的字符串來驗證,有可能導致死循環的結果。
1. 【強制】禁止向HTML頁面輸出未經安全過濾或未正確轉義的用戶數據。
2. 【強制】表單、AJAX提交必須執行CSRF安全過濾。
說明:CSRF(Cross-site request forgery)跨站請求偽造是一類常見編程漏洞。對于存在
CSRF漏洞的應用/網站,攻擊者可以事先構造好URL,只要受害者用戶一訪問,后臺便在用戶不知情情況下對數據庫中用戶參數進行相應修改。
1. 【強制】在使用平臺資源,譬如短信、郵件、電話、下單、支付,必須實現正確的防重放限制,如數量限制、疲勞度控制、驗證碼校驗,避免被濫刷、資損。
說明:如注冊時發送驗證碼到手機,如果沒有限制次數和頻率,那么可以利用此功能騷擾到其它用戶,并造成短信平臺資源浪費。
1. 【推薦】發貼、評論、發送即時消息等用戶生成內容的場景必須實現防刷、文本內容違禁詞過濾等風控策略。
- 一、編程規約????1
- (一) 命名風格????1
- (二) 常量定義????3
- (三) 代碼格式????4
- (四) OOP規約????6
- (五) 集合處理????9
- (六) 并發處理????12
- (七) 控制語句????14
- (八) 注釋規約????16
- (九) 其它????17
- 二、異常日志????18
- (一) 異常處理????18
- (二) 日志規約????19
- 三、單元測試????21
- 四、安全規約????23
- 五、MySQL數據庫????24
- (一) 建表規約????24
- (二) 索引規約????25
- (三) SQL語句????27
- (四) ORM映射????28
- 六、工程結構????30
- (一) 應用分層????30
- (二) 二方庫依賴????31
- (三) 服務器????32
- 附1:版本歷史????34
- 附2:本手冊專有名詞????35