
曙海教學(xué)優(yōu)勢
本課程,秉承二十一年積累的教學(xué)品質(zhì),以項目實(shí)現(xiàn)為導(dǎo)向,面向企事業(yè)項目實(shí)際需要,老師將會與您分享設(shè)計的全流程以及工具的綜合使用經(jīng)驗、技巧。課程可定制,線上/線下/上門皆可,熱線:4008699035。
  曙海培訓(xùn)的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。大批企業(yè)和曙海
     建立了良好的合作關(guān)系,20多年來,合作企事業(yè)單位以達(dá)30多萬。曙海培訓(xùn)的課程在業(yè)內(nèi)有著響亮的知名度。
Java安全編碼高級培訓(xùn)
培訓(xùn)大綱:
?1 安全編碼概述??? 
?1.1 錯位的信任??? 
?1.2 注入攻擊??? 
?1.3 敏感數(shù)據(jù)泄露??? 
?1.4 效能泄露??? 
?1.5 拒絕服務(wù)??? 
?1.6 序列化??? 
?1.7 并發(fā)性、可見性和內(nèi)存??? 
?1.8 最低權(quán)限原則??? 
?1.9 安全管理器??? 
?1.10 類裝載器??? 
?2 輸入驗證和數(shù)據(jù)凈化(IDS)規(guī)則風(fēng)險評估概要??? 
?2.1 凈化穿越受信邊界的非受信數(shù)據(jù)??? 
?2.2 驗證前標(biāo)準(zhǔn)化字符串??? 
?2.3 在驗證之前標(biāo)準(zhǔn)化路徑名??? 
?2.4 不要記錄未經(jīng)凈化的用戶輸入??? 
?2.5 限制傳遞給ZipInputStream的文件大小??? 
?2.6 使用ASCII字符集的子集作為文件名和路徑名??? 
?2.7 從格式字符串中排除用戶輸入??? 
?2.8 不要向Runtime.exec 方法傳遞非受信、未凈化的數(shù)據(jù)??? 
?3 聲明和初始化(DCL)規(guī)則風(fēng)險評估概要??? 
?3.1 防止類的循環(huán)初始化;??? 
?3.2 不要重用Java標(biāo)準(zhǔn)庫的已經(jīng)公開的標(biāo)識;??? 
?3.3 將所有增強(qiáng)for語句的循環(huán)變量聲明為final類型??? 
?4 表達(dá)式(EXP)規(guī)則風(fēng)險評估概要??? 
?4.1 不要忽略方法的返回值??? 
?4.2 不要解引用空指針??? 
?4.3 使用兩個參數(shù)的Arrays.equals方法來比較兩個數(shù)組的內(nèi)容??? 
?4.4 不要用相等操作符來比較兩個基礎(chǔ)數(shù)據(jù)類型的值??? 
?4.5 確保使用正確的類型來自動封裝數(shù)值??? 
?4.6 不要在一個表達(dá)式中對同一變量進(jìn)行多次寫入??? 
?4.7 不要在斷言中使用有副作用的表達(dá)式??? 
?5 數(shù)值類型與運(yùn)算(NUM)規(guī)則風(fēng)險評估概要??? 
?5.1 檢測和避免整數(shù)溢出??? 
?5.2 不要對同一數(shù)據(jù)進(jìn)行位運(yùn)算和數(shù)學(xué)運(yùn)算??? 
?5.3 確保除法運(yùn)算和模運(yùn)算中的除數(shù)不為0??? 
?5.4 使用可容納無符號數(shù)據(jù)合法取值范圍的整數(shù)類型??? 
?5.5 不要使用浮點(diǎn)數(shù)進(jìn)行精細(xì)計算??? 
?5.6 不要使用非標(biāo)準(zhǔn)化數(shù)??? 
?5.7 使用strictfp修飾符確保跨平臺浮點(diǎn)運(yùn)算的一致性??? 
?5.8 不要嘗試與NaN進(jìn)行比較??? 
?5.9 檢查浮點(diǎn)輸入特殊的數(shù)值??? 
?5.10 不要從浮點(diǎn)字元構(gòu)造BigDecimal對象??? 
?5.11 不要使用浮點(diǎn)變量作為循環(huán)計數(shù)器??? 
?5.11.1 確保將數(shù)值轉(zhuǎn)換成較小類型時不會產(chǎn)生數(shù)據(jù)丟失或曲解??? 
?6 面向?qū)ο螅∣BJ)規(guī)則風(fēng)險評估概要??? 
?6.1 只有受信子類能對具有不變性的類和方法進(jìn)行擴(kuò)展??? 
?6.2 聲明數(shù)據(jù)成員為私有并提供可訪問的封裝器方法??? 
?6.3 當(dāng)改變基類時,保存子類之間的依賴關(guān)系??? 
?6.4 在新代碼中,不要混用具有泛型和非泛型的原始數(shù)據(jù)類型??? 
?6.5 為可變類提供復(fù)制功能,并通過此功能允許將實(shí)例傳遞給非受信代碼??? 
?6.6 在返回引用之前,防御性復(fù)制私有的可變的類成員??? 
?6.7 對可變輸入和可變的內(nèi)部組件創(chuàng)建防御性復(fù)制??? 
?6.8 不允許敏感類復(fù)制其自身??? 
?6.9 不要在嵌套類中暴露外部類的私有字段??? 
?6.10 比較類而不是類名稱??? 
?6.11 不要使用公有靜態(tài)的非final變量??? 
?6.12 小心處理構(gòu)造函數(shù)拋出異常的情況??? 
?7 方法(MET)規(guī)則風(fēng)險評估概要??? 
?7.1 驗證方法參數(shù)??? 
?7.2 不要使用斷言驗證方法參數(shù)??? 
?7.3 不要使用棄用的或過時的類和方法??? 
?7.4 進(jìn)行安全檢測的方法必須聲明為private或final??? 
?7.5 不要增加被覆寫方法和被隱藏方法的可訪問性??? 
?7.6 確保構(gòu)造函數(shù)不會調(diào)用可覆寫的方法??? 
?7.7 不要在clone中調(diào)用可覆寫的方法??? 
?7.8 不要定義類方法來隱藏基類或基類接口中聲明的方法??? 
?7.9 確保比較等同的對象能得到相等的結(jié)果??? 
?7.10 定義了equlas方法的類必須定義hashCode方法??? 
?7.11 實(shí)現(xiàn)compareTo方法時遵守常規(guī)合約??? 
?7.12 確保比較中的關(guān)鍵碼是不可變的??? 
?7.13 不要使用析構(gòu)函數(shù)??? 
?8 異常行為(ERR)規(guī)則風(fēng)險評估概要??? 
?8.1 不要消除或忽略可檢查的異常??? 
?8.2 不能允許異常泄露敏感信息??? 
?8.3 記錄日志時應(yīng)避免異常??? 
?8.4 在方法失敗時恢復(fù)對象先前的狀態(tài)??? 
?8.5 不要在finally程序段非正常退出??? 
?8.6 不要在finally程序段中遺漏可檢查異常??? 
?8.7 不要拋出未聲明的可檢查異常??? 
?8.8 不要拋出RuntimeException、Exception或Throwable??? 
?8.9 不要捕捉NullPointerException或任何它的基類??? 
?8.10 禁止非受信代碼終止JVM??? 
?9 可見性和原子性(VNA)規(guī)則風(fēng)險評估概要??? 
?9.1 當(dāng)需要讀取共享基礎(chǔ)數(shù)據(jù)類型變量時,需要保證其可見性??? 
?9.2 保證對一個不可變對象的共享引用的可見性??? 
?9.3 保證對于共享變量的組合操作是原子性的??? 
?9.4 即使每一個方法都是相互獨(dú)立并且是原子性的,也不要假設(shè)一組調(diào)用是原子性的??? 
?9.5 保證串聯(lián)在一起的方法調(diào)用是原子性的??? 
?9.6 保證在讀寫64位的數(shù)值時的原子性