阿里巴巴Java開發手冊之安全規約(五)——-我的經驗
五、安全規約
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. 【強制】在使用平臺資源,譬如簡訊、郵件、電話、下單、支付,必須實現正確的防重放限制, 如數量限制、疲勞度控制、驗證碼校驗,避免被濫刷、資損。
說明:如註冊時傳送驗證碼到手機,如果沒有限制次數和頻率,那麼可以利用此功能騷擾到其它使用者,並造成簡訊平臺資源浪費。
- 【推薦】發貼、評論、傳送即時訊息等使用者生成內容的場景必須實現防刷、文字內容違禁詞過 濾等風控策略。
附 2:本規約專有名詞
- POJO(Plain Ordinary Java Object):在本規約中,POJO 專指只有 setter/getter/toString 的簡單類,包括 DO/DTO/BO/VO 等。
- DO(Data Object):本手冊指資料庫表一一對應的 POJO 類。
- GAV(GroupId、ArtifactctId、Version):Maven 座標,是用來唯一標識 jar 包。
- OOP(Object Oriented Programming): 本手冊泛指類、物件的程式設計處理方式。
- ORM(Object Relation Mapping): 物件關係對映,物件領域模型與底層資料之間的轉換, 本文泛指 iBATIS, mybatis 等框架。
- NPE(java.lang.NullPointerException): 空指標異常。
- 一方庫:本工程內部子專案模組依賴的庫(jar 包)。
- 二方庫:公司內部發布到中央倉庫,可供公司內部依賴的庫(jar 包)。
- 三方庫:公司之外的開源的依賴庫(jar 包)。
相關文章
- 阿里巴巴Java開發手冊之工程規約(四)——-我的經驗阿里Java
- 《阿里巴巴Java開發手冊(正式版)》--安全規約阿里Java
- 《阿里巴巴Java開發手冊(正式版)》--MySQL規約阿里JavaMySql
- 《阿里巴巴Java開發手冊(正式版)》--工程規約阿里Java
- 阿里巴巴Java開發規範手冊阿里Java
- 《阿里巴巴Java開發手冊(正式版)》--程式設計規約阿里Java程式設計
- 阿里巴巴Java開發手冊阿里Java
- 阿里Java開發手冊思考(五)阿里Java
- 阿里巴巴java開發手冊筆記阿里Java筆記
- 阿里巴巴Java開發手冊評述阿里Java
- 阿里巴巴 Java 開發手冊評述阿里Java
- 《阿里巴巴 Java開發手冊》讀後感阿里Java
- 阿里巴巴Java開發手冊閱讀筆記阿里Java筆記
- Web安全開發規範手冊V1.0Web
- Web 安全開發規範手冊 V1.0Web
- 由阿里巴巴Java開發規約HashMap條目引發的故事阿里JavaHashMap
- 一年Java開發經驗,阿里巴巴五面(已offer)面經,我自己都沒有想到我會過Java阿里
- 白話阿里巴巴Java開發手冊高階篇阿里Java
- 阿里JAVA手冊之MySQL資料庫(建表規約、索引規約、SQL語句、ORM對映)阿里JavaMySql資料庫索引ORM
- 漫畫:老闆扣了我1000,因為我沒記住阿里巴巴開發手冊的這條規則。阿里
- 你不知道的《阿里巴巴Java開發手冊》背後故事阿里Java
- 阿里java開發手冊阿里Java
- 《阿里巴巴Java開發手冊(正式版)》--異常日誌阿里Java
- Web前端開發規範手冊Web前端
- 阿里巴巴java開發手冊容易忽視的幾個知識點阿里Java
- 前端開發大眾手冊(包括工具、網址、經驗等)前端
- Web專案經理手冊之開發時間估算Web
- 安卓開發開發規範手冊V1.0安卓
- 安卓開發開發規範手冊 V1.0安卓
- 阿里巴巴Android開發手冊(正式版)阿里Android
- 阿里Java開發手冊思考(三)阿里Java
- 阿里Java開發手冊思考(一)阿里Java
- 阿里Java開發手冊思考(二)阿里Java
- Java開發手冊精華總結Java
- 阿里Java開發手冊思考(四)阿里Java
- 《碼處高效:Java開發手冊》之程式碼風格Java
- 面經手冊 · 開篇《面試官都問我啥》面試
- OKR落地手冊--個人經驗分享OKR