天天看點

阿裡巴巴 Java 開發手冊之安全規約(五)-------我的經驗

說明:java 代碼用正則來驗證用戶端的輸入,有些正則寫法驗證普通使用者輸入沒有問題, 但是如果攻擊人員使用的是特殊構造的字元串來驗證,有可能導緻死循環的結果。

說明:csrf(cross-site request forgery)跨站請求僞造是一類常見程式設計漏洞。對于存在 csrf 漏洞的應用/網站,攻擊者可以事先構造好 url,隻要受害者使用者一通路,背景便在使用者 不知情情況下對資料庫中使用者參數進行相應修改。

說明:如注冊時發送驗證碼到手機,如果沒有限制次數和頻率,那麼可以利用此功能騷擾到其它使用者,并造成短信平台資源浪費。

【推薦】發貼、評論、發送即時消息等使用者生成内容的場景必須實作防刷、文本内容違禁詞過 濾等風控政策。

附 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 包)。