注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(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ò)

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

譯者序

前言
致謝
第1章 概述
1.1 錯(cuò)位的信任
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章 輸入驗(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如果沒有指定適當(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在不同的字符編碼中無損轉(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防止類的循環(huán)初始化
3.2 DCL01-J不要重用Java標(biāo)準(zhǔn)庫的已經(jīng)公開的標(biāo)識(shí)
3.3 DCL02-J將所有增強(qiáng)for語句的循環(huán)變量聲明為final類型
第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方法來比較兩個(gè)數(shù)組的內(nèi)容
4.4 EXP03-J不要用相等操作符來比較兩個(gè)基礎(chǔ)數(shù)據(jù)類型的值
4.5 EXP04-J確保使用正確的類型來自動(dòng)封裝數(shù)值
4.6 EXP05-J不要在一個(gè)表達(dá)式中對(duì)同一變量進(jìn)行多次寫入
4.7 EXP06-J不要在斷言中使用有副作用的表達(dá)式
第5章 數(shù)值類型與運(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使用可容納無符號(hào)數(shù)據(jù)合法取值范圍的整數(shù)類型
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)換成較小類型時(shí)不會(huì)產(chǎn)生數(shù)據(jù)丟失或曲解
5.14 NUM13-J轉(zhuǎn)換基本整數(shù)類型至浮點(diǎn)類型時(shí)應(yīng)避免精度損失
第6章 面向?qū)ο螅∣BJ)規(guī)則風(fēng)險(xiǎn)評(píng)估概要
6.1 OBJ00-J只有受信子類能對(duì)具有不變性的類和方法進(jìn)行擴(kuò)展
6.2 OBJ01-J聲明數(shù)據(jù)成員為私有并提供可訪問的封裝器方法
6.3 OBJ02-J當(dāng)改變基類時(shí),保存子類之間的依賴關(guān)系
6.4 OBJ03-J在新代碼中,不要混用具有泛型和非泛型的原始數(shù)據(jù)類型
6.5 OBJ04-J為可變類提供復(fù)制功能,并通過此功能允許將實(shí)例傳遞給非受信代碼
6.6 OBJ05-J在返回引用之前,防御性復(fù)制私有的可變的類成員
6.7 OBJ06-J對(duì)可變輸入和可變的內(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)險(xiǎn)評(píng)估概要
7.1 MET00-J驗(yàn)證方法參數(shù)
7.2 MET01-J不要使用斷言驗(yàn)證方法參數(shù)
7.3 MET02-J不要使用棄用的或過時(shí)的類和方法
7.4 MET03-J進(jìn)行安全檢測(cè)的方法必須聲明為private或final
7.5 MET04-J不要增加被覆寫方法和被隱藏方法的可訪問性
7.6 MET05-J確保構(gòu)造函數(shù)不會(huì)調(diào)用可覆寫的方法
7.7 MET06-J不要在clone中調(diào)用可覆寫的方法
7.8 MET07-J不要定義類方法來隱藏基類或基類接口中聲明的方法
7.9 MET08-J確保比較等同的對(duì)象能得到相等的結(jié)果
7.10 MET09-J定義了equlas方法的類必須定義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或任何它的基類
8.10 ERR09-J禁止非受信代碼終止JVM
第9章 可見性和原子性(VNA)規(guī)則風(fēng)險(xiǎn)評(píng)估概要
9.1 VNA00-J當(dāng)需要讀取共享基礎(chǔ)數(shù)據(jù)類型變量時(shí),需要保證其可見性
9.2 VNA01-J保證對(duì)一個(gè)不可變對(duì)象的共享引用的可見性
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保證在讀寫64位的數(shù)值時(shí)的原子性
第10章 鎖(LCK)規(guī)則風(fēng)險(xiǎn)評(píng)估概要
10.1 LCK00-J通過私有final鎖對(duì)象可以同步那些與非受信代碼交互的類
10.2 LCK01-J不要基于那些可能被重用的對(duì)象進(jìn)行同步
10.3 LCK02-J不要基于那些通過getClass返回的類對(duì)象來實(shí)現(xiàn)同步
10.4 LCK03-J不要基于高層并發(fā)對(duì)象的內(nèi)置鎖來實(shí)現(xiàn)同步
10.5 LCK04-J即使集合是可訪問的,也不要基于集合視圖使用同步
10.6 LCK05-J對(duì)那些可以被非受信代碼修改的靜態(tài)字段,需要同步進(jìn)入
10.7 LCK06-J不要使用一個(gè)實(shí)例鎖來保護(hù)共享靜態(tài)數(shù)據(jù)
10.8 LCK07-J使用相同的方式請(qǐng)求和釋放鎖來避免死鎖
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)行承諾的類時(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來終止線程
第12章 線程池(TPS)規(guī)則風(fēng)險(xiǎn)評(píng)估概要
12.1 TPS00-J使用線程池處理流量突發(fā)以實(shí)現(xiàn)降低性能運(yùn)行
12.2 TPS01-J不要使用有限的線程池來執(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不要使用非線程安全方法來覆寫線程安全方法
13.2 TSM01-J不要讓this引用在創(chuàng)建對(duì)象時(shí)泄漏
13.3 TSM02-J不要在初始化類時(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使用合適的訪問權(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類型的返回值
14.10 FIO09-J不要使用write方法輸出超過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ù)的讀寫提供方法
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在類的演化過程中維護(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不要允許序列化和反序列化繞過安全管理器
15.6 SER05-J不要序列化內(nè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)用可以被覆寫的方法
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)代碼塊越過受信邊界泄露敏感信息
16.2 SEC01-J不要在特權(quán)代碼塊中使用污染過的變量
16.3 SEC02-J不要基于非受信源進(jìn)行安全檢查
16.4 SEC03-J不要在允許非受信代碼裝載任意類之后裝載受信類
16.5 SEC04-J使用安全管理器檢查來保護(hù)敏感操作
16.6 SEC05-J不要使用反射來增加類、方法和字段的可訪問性
16.7 SEC06-J不要依賴于默認(rèn)的由URLClassLoader和java.util.jar提供的自動(dòng)化簽名檢查
16.8 SEC07-J當(dāng)編寫一個(gè)自定義的類裝載器時(shí)調(diào)用基類的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不要使用空的無限循環(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ù)語表
參考資源

本目錄推薦

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