7.1 面向對象程序安全
7.1.1 泛型和非泛型數據類型
審計指標:不宜混用具有泛型和非泛型的數據類型。
審計人員宜檢查代碼是否存在泛型和非泛型之間數據類型的混用現象,應避免泛型和非泛型數據類型的混用。規范/不規范代碼示例參見B.3.1。
7.1.2 包含敏感信息類的安全
審計指標:包含敏感信息的類不應可復制和可序列化。
審計人員應檢查代碼中包含敏感信息類的相關行為是否安全,包括但不限于:
a) 應檢查代碼中包含敏感信息的類是否可復制, 如Java語言中實現了 Clonenable 接口, 使類可復制。包含敏感信息的類不應被復制。
b) 應檢查代碼中包含敏感信息的類是否可實現了序列化接口,使類可序列化。包含敏感信息的類不應可序列化。
7.1.3 類比較
審計指標:在類進行比較時,不宜只使用名稱比較。
審計人員宜檢查代碼中當判定一個對象是否屬于特定的類或兩個對象的類是否相同時,宜比較類對象,不能僅基于類名稱進行判定。
7.1.4 類私有可變成員的引用
審計指標:應禁止返回類的私有可變成員的引用。
審計人員應檢查代碼中是否存在返回類私有可變成員的引用的情況。如結果為肯定,則可能存在內部狀態被非預期修改的風險。
7.1.5 存儲不可序列化的對象到磁盤
審計指標:不應將不可序列化的對象存儲到磁盤。
審計人員應檢查代碼是否試圖將不可序列化的對象寫到磁盤中,將不可序列化的對象存儲到磁盤上,會導致對象反序列化失敗,可能引起任意代碼執行風險。代碼的不規范/規范用法示例參見B.3.2。
GB/T 39412-2020 信息安全技術 代碼安全審計規范
推薦文章: