Java 编码规范11(安全规约)
安全規約
其它相關文章
Java 編碼規范1(編程規約-命名風格)
Java 編碼規范2(編程規約-常量定義)
Java 編碼規范3(編程規約-代碼格式)
Java 編碼規范4(編程規約-OOP規約)
Java 編碼規范5(編程規約-集合處理)
Java 編碼規范6(編程規約-并發處理)
Java 編碼規范7(編程規約-控制語句)
Java 編碼規范8(編程規約-注釋規約與其它)
Java 編碼規范9(異常日志)
Java 編碼規范10(單元測試)
Java 編碼規范11(安全規約)
Java 編碼規范12(MySQL-建表規約)
Java 編碼規范13(MySQL-索引規約)
Java 編碼規范14(MySQL-SQL語句與ORM映射)
Java 編碼規范15(工程結構)
[強制] 隸屬于用戶個人的頁面或者功能必須進行權限控制校驗。
- 防止沒有做水平權限校驗就可隨意訪問、修改、刪除別人的數據,比如查看他人的私信內容、修改他人的訂單。
[強制] 用戶敏感數據禁止直接展示,必須對展示數據進行脫敏。
- 示例:個人手機號碼顯示為:158****9119,隱藏中間4位,防止隱私泄露。
[強制] 用戶輸入的SQL參數嚴格使用參數綁定或者METADATA字段值限定,防止SQL注入,禁止字符串拼接SQL訪問數據庫。
[強制] 用戶請求傳入的任何參數必須做有效性驗證。
- 忽略參數校驗的風險:
- page size過大導致內存溢出
- 惡意order by導致數據庫慢查詢
- 任意重定向
- SQL注入
- 反序列化注入
- 正則輸入源串拒絕服務ReDoS
- 說明: Java代碼用正則來驗證客戶端的輸入,有些正則寫法驗證普通用戶輸入沒有問題,但是如果攻擊人員使用的是特殊構造的字符串來驗證,有可能導致死循環的 結果。
[強制] 禁止向HTML頁面輸出未經安全過濾或未正確轉義的用戶數據。
[強制] 表單、AJAX提交必須執行CSRF安全過濾。
- 說明:CSRF(Cross-site request forgery) 跨站請求偽造是一類常見編程漏洞。對于存在CSRF漏洞的應用/網站,攻擊者可以事先構造好URL,只要受害者用戶一訪問,后臺便在用戶不知情情況下對數據庫中用戶參數進行相應修改。
[強制] 在使用平臺資源,譬如短信、郵件、電話、下單、支付,必須實現正確的防重放限制,如數量限制、疲勞度控制、驗證碼校驗,避免被濫刷導致資損。
- 如注冊時發送驗證碼到手機,如果沒有限制次數和頻率,那么可以利用此功能騷擾到其它用戶,并造成短信平臺資源浪費。
發貼、評論、發送即時消息等用戶生成內容的場景必須實現防刷、文本內容違禁詞過濾等風控策略。
總結
以上是生活随笔為你收集整理的Java 编码规范11(安全规约)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在恰当的地方使用MongoDB的Writ
- 下一篇: Java Websocket实例