Java安全開發(fā)課程培訓(xùn)
?
培訓(xùn)介紹:
可以全方位了解Java開發(fā)過程中遇到的各種容易忽視的安全問題,及其防范方法。可以在今后的開發(fā)過程中有意識的避免各種安全問題,提高代碼質(zhì)量。
主?題
內(nèi)?容
培?訓(xùn)?目?標(biāo)
培訓(xùn)開始
講師與學(xué)員自我介紹
課程目標(biāo)介紹
課程內(nèi)容介紹
使學(xué)員了解培訓(xùn)的目標(biāo)和內(nèi)容
數(shù)據(jù)輸入驗證與數(shù)據(jù)清理
1、SQL注入,XML注入,regex注入攻擊原理與防范
了解系統(tǒng)輸入數(shù)據(jù)驗證過程中的安全注意事項,以及轉(zhuǎn)換和傳輸過程中的安全注意事項
2、字符串驗證,路徑名驗證以及日志記錄中的安全漏洞與防范
3、ZipInputStream與Runtime安全注意事項
4、字符串在編碼轉(zhuǎn)換,網(wǎng)絡(luò)傳輸中的安全注意事項
對象聲明與初始化過程中安全陷阱與防范
1、防范類初始化的嵌套循環(huán)
了解對象聲明與初始化過程中安全陷阱與防范方法
2、不要重復(fù)使用Java標(biāo)準(zhǔn)庫中的公開標(biāo)識符
3、循環(huán)相關(guān)變量聲明注意事項
表達式安全注意事項
1、不要忽略方法的返回值
了解表達式安全注意事項
2、不要引用空指針
3、數(shù)組內(nèi)容比較安全注意事項
4、‘==’和equals方法中的安全注意事項
5、原始數(shù)據(jù)封裝與運算中的安全注意事項
數(shù)字類型與操作安全
1、防范整數(shù)溢出
了解數(shù)字類型變量聲明和操作中的各種安全問題及其防范方法
2、單精度浮點數(shù)運算相關(guān)安全問題
3、strictfp的使用
面向?qū)ο蟀踩?br>
1、防范類與方法的惡意擴展
了解對象聲明,繼承,傳遞過程中的各種安全問題及其防范方法
2、更新父類引發(fā)的安全問題
3、傳遞對象時使用copy功能
4、防范嵌套類暴露外層類的敏感信息
類方法安全
1、類方法參數(shù)的驗證
了解類方法實現(xiàn)過程中的各種安全問題及避免方法
2、Assert相關(guān)安全注意事項
3、用private和final修飾執(zhí)行安全檢查的方法
4、降低被覆蓋方法與隱藏方法的可見性
5、其他類方法相關(guān)的安全注意事項
異常處理中的安全問題
1、?壓抑或忽視異常情況導(dǎo)致的安全問題
了解異常處理中的安全問題及防范方法
2、異常暴露敏感信息
3、防范日志記錄過程中的異常
4、finally相關(guān)安全問題
5、不要拋出RuntimeException,Exception,或者Throwable異常
可見性與原子性
1、共享變量復(fù)合操作的原子性
了解共享變量訪問和復(fù)合操作原子性相關(guān)的安全問題及其防范方法
2、保證一連串的方法調(diào)用具有原子性
3、不要假定對一組相互獨立的方法的調(diào)用具有原子性
4、當(dāng)讀寫64位數(shù)據(jù)時確保原子性
5、保證共享原始變量的可見性
輸入輸出安全
1、操作共享目錄的風(fēng)險
了解輸入輸出中安全問題及其防范方法
2、應(yīng)用程序結(jié)束前刪除所有臨時文件
3、檢測和處理文件相關(guān)的錯誤
4、文件操作相關(guān)的其他安全問題
序列化過程中安全
1、在class升級進化過程中,維護序列化過程的兼容性
了解序列化過程中的安全問題及防范方法
2、使用正確的序列化方法聲明方式
3、不要序列化非加密的敏感數(shù)據(jù)
4、在序列化過程中避免內(nèi)存和資源泄露
5、序列化過程中其他安全相關(guān)問題
線程安全
1、不要對一個可能重用的對象加鎖
了解線程安全相關(guān)問題及其防范方法
?
2、不要對getClass()方法返回的class對象進行加鎖
?
?
3、線程API(run,ThreadGroup,stop)相關(guān)安全問題
?
?
4、在一個線程池內(nèi)不要執(zhí)行相互依賴的任務(wù)
?
?
5、當(dāng)使用線程池時,確保ThreadLocal變量重新初始化
?
平臺安全
1、不要允許特權(quán)模塊泄露敏感信息到受信區(qū)域之外
了解Java平臺相關(guān)的安全問題及其防范方法
2、不允許特權(quán)模塊有受污染變量
3、不要使用反射機制增加類,方法和成員變量的可訪問性
4、不要在非受信區(qū)域執(zhí)行安全檢查
運行時環(huán)境安全
1、只執(zhí)行非特權(quán)操作的代碼不要進行代碼簽名
了解Java運行時環(huán)境安全相關(guān)問題及其防范方法
2、把所有安全敏感相關(guān)的代碼放在一個單一的jar包中,進行簽名封裝
3、不要進行危險的聯(lián)合授權(quán)
4、不要廢除二進制碼的驗證機制
培訓(xùn)結(jié)束
培訓(xùn)結(jié)束
培訓(xùn)總結(jié)及疑問解答
?
?
?
·
?
?
?
?
?
?
?
?
?
?
?
?
?
?