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

Java安全編碼標(biāo)準(zhǔn)(基于Java標(biāo)準(zhǔn)版6.0平臺(tái))

Java安全編碼標(biāo)準(zhǔn)(基于Java標(biāo)準(zhǔn)版6.0平臺(tái))

定 價(jià):¥99.00

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

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111428183 出版時(shí)間: 2013-06-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 511 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

暫缺《Java安全編碼標(biāo)準(zhǔn)(基于Java標(biāo)準(zhǔn)版6.0平臺(tái))》作者簡(jiǎn)介

圖書(shū)目錄

譯者序

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

本目錄推薦

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