《阿里巴巴Java開發手冊(正式版)》--安全規約

衣舞晨風發表於2017-02-21

1.【強制】隸屬於使用者個人的頁面或者功能必須進行許可權控制校驗。
說明:防止沒有做水平許可權校驗就可隨意訪問、操作別人的資料,比如檢視、修改別人的訂單。
2.【強制】使用者敏感資料禁止直接展示,必須對展示資料脫敏。
說明:檢視個人手機號碼會顯示成:158****9119,隱藏中間 4位,防止隱私洩露。
3.【強制】使用者輸入的 SQL引數嚴格使用引數繫結或者 METADATA欄位值限定,防止 SQL隱碼攻擊,禁止字串拼接 SQL訪問資料庫。
4.【強制】使用者請求傳入的任何引數必須做有效性驗證。
說明:忽略引數校驗可能導致:

  • page size過大導致記憶體溢位
  • 惡意 order by導致資料庫慢查詢
  • 任意重定向
  • SQL隱碼攻擊
  • 反序列化注入
  • 正則輸入源串拒絕服務 ReDoS

說明:Java 程式碼用正則來驗證客戶端的輸入,有些正則寫法驗證普通使用者輸入沒有問題,但是如果攻擊人員使用的是特殊構造的字串來驗證,有可能導致死迴圈的效果。
5.【強制】禁止向 HTML頁面輸出未經安全過濾或未正確轉義的使用者資料。
6.【強制】表單、AJAX提交必須執行 CSRF安全過濾。
說明:CSRF(Cross-site request forgery)跨站請求偽造是一類常見程式設計漏洞。對於存在CSRF漏洞的應用/網站,攻擊者可以事先構造好 URL,只要受害者使用者一訪問,後臺便在使用者不知情情況下對資料庫中使用者引數進行相應修改。
7.【強制】在使用平臺資源,譬如簡訊、郵件、電話、下單、支付,必須實現正確的防重放限制,如數量限制、疲勞度控制、驗證碼校驗,避免被濫刷、資損。
說明:如註冊時傳送驗證碼到手機,如果沒有限制次數和頻率,那麼可以利用此功能騷擾到其它使用者,並造成簡訊平臺資源浪費。
8.【推薦】發貼、評論、傳送即時訊息等使用者生成內容的場景必須實現防刷、文字內容違禁詞過濾等風控策略。

本文整理自:《阿里巴巴Java開發手冊(正式版)》

整理本文的目的是方便自己閱讀,標註等,如有侵權,立馬刪除。

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章