注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計JAVA及其相關(guān)Java安全編碼標準(基于Java標準版6.0平臺)

Java安全編碼標準(基于Java標準版6.0平臺)

Java安全編碼標準(基于Java標準版6.0平臺)

定 價:¥99.00

作 者: Fred Long 等著,楊曉春 譯
出版社: 機械工業(yè)出版社
叢編項:
標 簽: Java Java Script J2EE 程序設(shè)計 計算機/網(wǎng)絡(luò)

ISBN: 9787111428183 出版時間: 2013-06-01 包裝: 平裝
開本: 16開 頁數(shù): 511 字數(shù):  

內(nèi)容簡介

  《華章程序員書庫:Java安全編碼標準》是Java安全編碼領(lǐng)域最權(quán)威、最全面、最詳細的著作,Java之父JamesA.Gosling推薦。不僅從語言角度系統(tǒng)而詳細地闡述Java安全編碼的要素、標準、規(guī)范和最佳實踐,而且從架構(gòu)設(shè)計的角度分析了JavaAPI存在的設(shè)計缺陷和可能存在的安全風(fēng)險,以及應(yīng)對的策略和措施??梢詫⒈緯鳛镴ava安全方面的工具書,根據(jù)自己的需要,找到自己感興趣的規(guī)則進行閱讀和理解,或者在實際開發(fā)中遇到安全問題時,根據(jù)書中列出的大致分類對規(guī)則進行索引和閱讀,也可以通讀全書的所有規(guī)則,系統(tǒng)地了解Java安全規(guī)則,增強對Java安全特性、語言使用、運行環(huán)境特性的理解?!度A章程序員書庫:Java安全編碼標準》能指導(dǎo)Java軟件工程師設(shè)計出高質(zhì)量的、安全的、可靠的、強大的、有彈性的、可用性和可維護性高的軟件系統(tǒng)?!度A章程序員書庫:Java安全編碼標準》內(nèi)容非常全面,包括基于JavaSE6平臺的一系列應(yīng)用于Java語言和類庫的安全編碼規(guī)則,并且對這一系列規(guī)則進行了分類,包括輸入數(shù)據(jù)驗證、聲明和初始化、表達式、數(shù)值類型和操作、面向?qū)ο?、方法使用、異常處理、可見性和原子性、鎖、線程、輸入輸出、序列化、平臺安全特性、Java運行環(huán)境等重要方面,對每一個方面所涉及的安全編碼要素、規(guī)范和標準進行了詳細闡釋。

作者簡介

暫缺《Java安全編碼標準(基于Java標準版6.0平臺)》作者簡介

圖書目錄

譯者序

前言
致謝
第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 類裝載器
1.11 小結(jié)
第2章 輸入驗證和數(shù)據(jù)凈化(IDS)規(guī)則風(fēng)險評估概要
2.1 IDS00-J凈化穿越受信邊界的非受信數(shù)據(jù)
2.2 IDS01-J驗證前標準化字符串
2.3 IDS02-J在驗證之前標準化路徑名
2.4 IDS03-J不要記錄未經(jīng)凈化的用戶輸入
2.5 IDS04-J限制傳遞給ZipInputStream的文件大小
2.6 IDS05-J使用ASCII字符集的子集作為文件名和路徑名
2.7 IDS06-J從格式字符串中排除用戶輸入
2.8 IDS07-J不要向Runtime.exec 方法傳遞非受信、未凈化的數(shù)據(jù)
2.9 IDS08-J凈化傳遞給正則表達式的非受信數(shù)據(jù)
2.10 DS09-J如果沒有指定適當(dāng)?shù)膌ocale,不要使用locale相關(guān)方法處理與locale相關(guān)的數(shù)據(jù)
2.11 IDS10-J不要拆分兩種數(shù)據(jù)結(jié)構(gòu)中的字符串
2.12 IDS11-J在驗證前去掉非字符碼點
2.13 IDS12-J在不同的字符編碼中無損轉(zhuǎn)換字符串?dāng)?shù)據(jù)
2.14 IDS13-J在文件或者網(wǎng)絡(luò)I/O兩端使用兼容的編碼方式
第3章 聲明和初始化(DCL)規(guī)則風(fēng)險評估概要
3.1 DCL00-J防止類的循環(huán)初始化
3.2 DCL01-J不要重用Java標準庫的已經(jīng)公開的標識
3.3 DCL02-J將所有增強for語句的循環(huán)變量聲明為final類型
第4章 表達式(EXP)規(guī)則風(fēng)險評估概要
4.1 EXP00-J不要忽略方法的返回值
4.2 EXP01-J不要解引用空指針
4.3 EXP02-J使用兩個參數(shù)的Arrays.equals方法來比較兩個數(shù)組的內(nèi)容
4.4 EXP03-J不要用相等操作符來比較兩個基礎(chǔ)數(shù)據(jù)類型的值
4.5 EXP04-J確保使用正確的類型來自動封裝數(shù)值
4.6 EXP05-J不要在一個表達式中對同一變量進行多次寫入
4.7 EXP06-J不要在斷言中使用有副作用的表達式
第5章 數(shù)值類型與運算(NUM)規(guī)則風(fēng)險評估概要
5.1 NUM00-J檢測和避免整數(shù)溢出
5.2 NUM01-J不要對同一數(shù)據(jù)進行位運算和數(shù)學(xué)運算
5.3 NUM02-J確保除法運算和模運算中的除數(shù)不為0
5.4 NUM03-J使用可容納無符號數(shù)據(jù)合法取值范圍的整數(shù)類型
5.5 NUM04-J不要使用浮點數(shù)進行精細計算
5.6 NUM05-J不要使用非標準化數(shù)
5.7 NUM06-J使用strictfp修飾符確保跨平臺浮點運算的一致性
5.8 NUM07-J不要嘗試與NaN進行比較
5.9 NUM08-J檢查浮點輸入特殊的數(shù)值
5.10 NUM09-J不要使用浮點變量作為循環(huán)計數(shù)器
5.11 NUM10-J不要從浮點字元構(gòu)造BigDecimal對象
5.12 NUM11-J不要比較或者審查以字符串表達的浮點數(shù)值
5.13 NUM12-J確保將數(shù)值轉(zhuǎn)換成較小類型時不會產(chǎn)生數(shù)據(jù)丟失或曲解
5.14 NUM13-J轉(zhuǎn)換基本整數(shù)類型至浮點類型時應(yīng)避免精度損失
第6章 面向?qū)ο螅∣BJ)規(guī)則風(fēng)險評估概要
6.1 OBJ00-J只有受信子類能對具有不變性的類和方法進行擴展
6.2 OBJ01-J聲明數(shù)據(jù)成員為私有并提供可訪問的封裝器方法
6.3 OBJ02-J當(dāng)改變基類時,保存子類之間的依賴關(guān)系
6.4 OBJ03-J在新代碼中,不要混用具有泛型和非泛型的原始數(shù)據(jù)類型
6.5 OBJ04-J為可變類提供復(fù)制功能,并通過此功能允許將實例傳遞給非受信代碼
6.6 OBJ05-J在返回引用之前,防御性復(fù)制私有的可變的類成員
6.7 OBJ06-J對可變輸入和可變的內(nèi)部組件創(chuàng)建防御性復(fù)制
6.8 OBJ07-J不允許敏感類復(fù)制其自身
6.9 OBJ08-J不要在嵌套類中暴露外部類的私有字段
6.10 OBJ09-J比較類而不是類名稱
6.11 OBJ10-J不要使用公有靜態(tài)的非final變量
6.12 OBJ11-J小心處理構(gòu)造函數(shù)拋出異常的情況
第7章 方法(MET)規(guī)則風(fēng)險評估概要
7.1 MET00-J驗證方法參數(shù)
7.2 MET01-J不要使用斷言驗證方法參數(shù)
7.3 MET02-J不要使用棄用的或過時的類和方法
7.4 MET03-J進行安全檢測的方法必須聲明為private或final
7.5 MET04-J不要增加被覆寫方法和被隱藏方法的可訪問性
7.6 MET05-J確保構(gòu)造函數(shù)不會調(diào)用可覆寫的方法
7.7 MET06-J不要在clone中調(diào)用可覆寫的方法
7.8 MET07-J不要定義類方法來隱藏基類或基類接口中聲明的方法
7.9 MET08-J確保比較等同的對象能得到相等的結(jié)果
7.10 MET09-J定義了equlas方法的類必須定義hashCode方法
7.11 MET10-J實現(xiàn)compareTo方法時遵守常規(guī)合約
7.12 MET11-J確保比較中的關(guān)鍵碼是不可變的
7.13 MET12-J不要使用析構(gòu)函數(shù)
第8章 異常行為(ERR)規(guī)則風(fēng)險評估概要
8.1 ERR00-J不要消除或忽略可檢查的異常
8.2 ERR01-J不能允許異常泄露敏感信息
8.3 ERR02-J記錄日志時應(yīng)避免異常
8.4 ERR03-J在方法失敗時恢復(fù)對象先前的狀態(tài)
8.5 ERR04-J不要在finally程序段非正常退出
8.6 ERR05-J不要在finally程序段中遺漏可檢查異常
8.7 ERR06-J不要拋出未聲明的可檢查異常
8.8 ERR07-J不要拋出RuntimeException、Exception或Throwable
8.9 ERR08-J不要捕捉NullPointerException或任何它的基類
8.10 ERR09-J禁止非受信代碼終止JVM
第9章 可見性和原子性(VNA)規(guī)則風(fēng)險評估概要
9.1 VNA00-J當(dāng)需要讀取共享基礎(chǔ)數(shù)據(jù)類型變量時,需要保證其可見性
9.2 VNA01-J保證對一個不可變對象的共享引用的可見性
9.3 VNA02-J保證對于共享變量的組合操作是原子性的
9.4 VNA03-J即使每一個方法都是相互獨立并且是原子性的,也不要假設(shè)一組調(diào)用是原子性的
9.5 VNA04-J保證串聯(lián)在一起的方法調(diào)用是原子性的
9.6 VNA05-J保證在讀寫64位的數(shù)值時的原子性
第10章 鎖(LCK)規(guī)則風(fēng)險評估概要
10.1 LCK00-J通過私有final鎖對象可以同步那些與非受信代碼交互的類
10.2 LCK01-J不要基于那些可能被重用的對象進行同步
10.3 LCK02-J不要基于那些通過getClass返回的類對象來實現(xiàn)同步
10.4 LCK03-J不要基于高層并發(fā)對象的內(nèi)置鎖來實現(xiàn)同步
10.5 LCK04-J即使集合是可訪問的,也不要基于集合視圖使用同步
10.6 LCK05-J對那些可以被非受信代碼修改的靜態(tài)字段,需要同步進入
10.7 LCK06-J不要使用一個實例鎖來保護共享靜態(tài)數(shù)據(jù)
10.8 LCK07-J使用相同的方式請求和釋放鎖來避免死鎖
10.9 LCK08-J在異常條件時,保證釋放已經(jīng)持有的鎖
10.10 LCK09-J不要執(zhí)行那些持有鎖時會阻塞的操作
10.11 LCK10-J不要使用不正確形式的雙重鎖定檢查慣用法
10.12 LCK11-J當(dāng)使用那些不能對鎖策略進行承諾的類時,避免使用客戶端鎖定
第11章 線程API(THI)規(guī)則風(fēng)險評估概要
11.1 THI00-J不要調(diào)用Thread.run
11.2 THI01-J不能調(diào)用ThreadGroup方法
11.3 THI02-J通知所有等待中的線程而不是單一線程
11.4 THI03-J始終在循環(huán)中調(diào)用wait和await方法
11.5 THI04-J確??梢越K止受阻線程
11.6 THI05-J不要使用Thread.stop來終止線程
第12章 線程池(TPS)規(guī)則風(fēng)險評估概要
12.1 TPS00-J使用線程池處理流量突發(fā)以實現(xiàn)降低性能運行
12.2 TPS01-J不要使用有限的線程池來執(zhí)行相互依賴的任務(wù)
12.3 TPS02-J確保提交至線程池的任務(wù)是可中斷的
12.4 TPS03-J確保線程池中正在執(zhí)行的任務(wù)不會失敗而不給出任何提示
12.5 TPS04-J使用線程池時,確保ThreadLocal變量可以重新初始化
第13章 與線程安全相關(guān)的其他規(guī)則(TSM)規(guī)則風(fēng)險評估概要
13.1 TSM00-J不要使用非線程安全方法來覆寫線程安全方法
13.2 TSM01-J不要讓this引用在創(chuàng)建對象時泄漏
13.3 TSM02-J不要在初始化類時使用后臺線程
13.4 TSM03-J不要發(fā)布部分初始化的對象
第14章 輸入輸出(FIO)規(guī)則風(fēng)險評估概要
14.1 FIO00-J不要操作共享目錄中的文件
14.2 FIO01-J使用合適的訪問權(quán)限創(chuàng)建文件
14.3 FIO02-J發(fā)現(xiàn)并處理與文件相關(guān)的錯誤
14.4 FIO03-J在終止前移除臨時文件
14.5 FIO04-J在不需要時關(guān)閉資源
14.6 FIO05-J不要使用wrap或duplicate創(chuàng)建緩存,并將這些緩存暴露給非受信代碼
14.7 FIO06-J不能在一個單獨的InputStream上創(chuàng)建多個緩存區(qū)封裝器
14.8 FIO07-J不要讓外部進程阻塞輸入和輸出流
14.9 FIO08-J對讀取一個字符或者字節(jié)的方法,使用int類型的返回值
14.10 FIO09-J不要使用write方法輸出超過0~255的整數(shù)
14.11 FIO10-J使用read方法保證填充一個數(shù)組
14.12 FIO11-J不要將原始的二進制數(shù)據(jù)作為字符數(shù)據(jù)讀入
14.13 FIO12-J為小端數(shù)據(jù)的讀寫提供方法
14.14 FIO13-J不要在受信邊界之外記錄敏感信息
14.15 FIO14-J在程序終止時執(zhí)行正確的清理動作
第15章 序列化(SER)規(guī)則風(fēng)險評估概要
15.1 SER00-J在類的演化過程中維護其序列化的兼容性
15.2 SER01-J不要偏離序列化方法的正確簽名
15.3 SER02-J在將對象向信任邊界之外發(fā)送時,需要簽名并且封裝敏感對象
15.4 SER03-J不要序列化未經(jīng)加密的敏感數(shù)據(jù)
15.5 SER04-J不要允許序列化和反序列化繞過安全管理器
15.6 SER05-J不要序列化內(nèi)部類實例
15.7 SER06-J在反序列化時,對私有的可變的組件進行防御性復(fù)制
15.8 SER07-J不要對實現(xiàn)定義的不可變因素使用默認的序列化格式
15.9 SER08-J在從擁有特性的環(huán)境中進行反序列化之前最小化特權(quán)
15.10 SER09-J不要從readObject方法中調(diào)用可以被覆寫的方法
15.11 SER10-J在序列化時,避免出現(xiàn)內(nèi)存和資源泄漏
15.12 SER11-J防止覆蓋外部化的對象
第16章 平臺安全性(SEC)規(guī)則風(fēng)險評估概要
16.1 SEC00-J不要允許特權(quán)代碼塊越過受信邊界泄露敏感信息
16.2 SEC01-J不要在特權(quán)代碼塊中使用污染過的變量
16.3 SEC02-J不要基于非受信源進行安全檢查
16.4 SEC03-J不要在允許非受信代碼裝載任意類之后裝載受信類
16.5 SEC04-J使用安全管理器檢查來保護敏感操作
16.6 SEC05-J不要使用反射來增加類、方法和字段的可訪問性
16.7 SEC06-J不要依賴于默認的由URLClassLoader和java.util.jar提供的自動化簽名檢查
16.8 SEC07-J當(dāng)編寫一個自定義的類裝載器時調(diào)用基類的getPermissions方法
16.9 SEC08-J定義基于原生方法的封裝器
第17章 運行環(huán)境(ENV)規(guī)則風(fēng)險評估概要
17.1 ENV00-J不要簽名只執(zhí)行非特權(quán)操作的代碼
17.2 ENV01-J將所有安全敏感的代碼置于單獨一個jar包中,并且在簽名之后封裝它
17.3 ENV02-J不要信任環(huán)境變量的值
17.4 ENV03-J不要賦予危險的權(quán)限組合
17.5 ENV04-J不要關(guān)閉字節(jié)碼驗證功能
17.6 ENV05-J不要部署一個被遠程監(jiān)視的應(yīng)用
第18章 其他(MSC)規(guī)則風(fēng)險評估概要
18.1 MSC00-J在交換安全數(shù)據(jù)時使用SSLSocket而不是Socket
18.2 MSC01-J不要使用空的無限循環(huán)
18.3 MSC02-J生成強隨機數(shù)
18.4 MSC03-J不要硬編碼敏感信息
18.5 MSC04-J防止內(nèi)存泄漏
18.6 MSC05-J不要耗盡堆空間
18.7 MSC06-J當(dāng)一個遍歷正在進行時,不要修改它對應(yīng)的集合
18.8 MSC07-J防止多次實例化單例對象
術(shù)語表
參考資源

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號