|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Java编码指南 编写安全可靠程序的75条建议4 ], Z6 [0 N' z8 d* Z. b. P3 v
》
: N& a. l' P% zjava电子书推荐理由:Java之父James A.Gosling作序推荐 Java领域安全编码的倾情著作,本书体现了Java安全领域的全新研究成果,提供了很多全新的防护技巧,既能防护故意的攻击,也能防护一些意外导致的事件。书中把那些不必列入Java安全编码标准但是同样会导致系统不可靠或不安全的Java编码实践整理了出来,并为这些糟糕的实践提供了相应的文档和警告,以及合规解决方案。为读者提供了75条编码指南,每一条指南的描述结构都是一致的、直观的。/ M) ^0 m, D' T4 x' n6 |* f4 W0 w" o
3 i: H+ n4 a% Z A$ A
5 L" j$ j5 g/ G1 A; r& c$ v s作者:[美]弗雷德·朗(Fred Long)德鲁·莫欣达(Dhruv Mohindra 著% s* W9 r) U- V2 R* @
出版社:人民邮电出版社5 ?9 @( G4 ^9 M
出版时间:2015-12-01
% H7 R9 I$ U% q" m; Y
1 K8 o. n& o9 s R% K7 N4 T' ?) C! ~2 l
" s- d, `9 w* w" J ]
4 W1 l Z# y3 v1 V8 C& r* q4 c
java电子书目录:
0 V, s# e4 J) Q, ~7 L$ e
% Y9 @7 }" d- [3 i; M6 n第1章 安全 1
& {9 g: k8 b7 U3 E指南1:限制敏感数据的生命周期 1
g# v) \4 I# o指南2:不要在客户端存储未经加密的敏感数据 5! ?+ F n" k/ f; d5 L4 r
指南3:为敏感可变类提供不可修改的包装器 10
H- {1 x( P" {! z% T$ k a4 ?$ L; f' U指南4:确保安全敏感方法被调用时参数经过验证 12- v& @# H. v7 o( Z
指南5:防止任意文件上传 14+ s/ ]& J' t& b
指南6:正确地编码或转义输出 17
7 M t. C/ z% a8 `指南7:防止代码注入 22( O0 x$ B9 ]+ U7 Y
指南8:防止XPath注入 250 v- t* V8 |) n8 S3 ~7 E
指南9:防止LDAP注入 30# {1 \' ?: i3 P X" {; p
指南10:不要使用clone()方法来复制不可信的方法参数 34
9 {$ n# y2 F h1 W+ l指南11:不要使用Object.equals()来比较密钥 37
4 c1 G$ x: \6 |指南12:不要使用不安全的弱加密算法 39
' O" [6 b( G+ K; F, m6 s指南13:使用散列函数存储密码 41) x7 x% h& V, K
指南14:确保SecureRandom正确地选择随机数种子 46
$ X' p7 Q4 I) J' C" j- U指南15:不要依赖可以被不可信代码覆盖的方法 47
?5 ~5 O7 a s. ?! O* ]! m% q指南16:避免授予过多特权 55
0 j) q7 S; N. i& U- I" z8 i4 a: [: D指南17:小化特权代码 59
1 Y! T z" b/ E5 \2 ^8 b指南18:不要将使用降低安全性检查的方法暴露给不可信代码 61: M5 W0 R3 y3 l* d
指南19:对细粒度的安全定义自定义安全权限 70
" d7 R8 i' {8 E3 o9 w, r1 f指南20:使用安全管理器创建一个安全的沙盒 74+ } Y) p6 A4 A( S/ ]- C8 x) V
指南21:不要让不可信代码误用回调方法的特权 78
6 _1 Y6 \" l7 ^7 R# ^第2章 防御式编程 85
: s( B5 b) Z: q指南22:*小化变量的作用域 85
. m# L0 x7 Y, O3 }+ u5 s, [指南23:*小化@SuppressWarnings注解的作用域 886 m# y$ L& ?1 Y" B/ n1 Z' S6 h4 y" e3 K
指南24:*小化类及其成员的可访问性 91
- g9 L7 z5 k- I. u' D( m指南25:文档化代码的线程安全性 96: E; m$ ^, i) m0 o
指南26:为方法的结果值提供反馈 103" f; X6 n' x7 r1 t; y
指南27:使用多个文件属性识别文件 106' ]9 ]+ `! ~/ Y6 _' X5 r
指南28:不要赋予枚举常量的序号任何特殊意义 114
4 p; [% U9 }; A" @7 ~9 n指南29:注意数字提升行为 116" Q. t7 b& q5 x3 G" r0 R7 b y* g; R
指南30:对可变参数的类型做编译时类型检查 121
* h9 N( W: J$ ~指南31:不要把其值在以后版本里可能会发生变化的常量设置为public final 124
6 N- s! v" U- m指南32:避免包之间的循环依赖 1273 u5 t+ W4 B7 v& A, k
指南33:使用用户自定义的异常而非宽泛的异常类型 130
8 n: E; k. S0 b) y- q; Q u指南34:尽量从系统错误中优雅恢复 133
6 t' P4 {- d1 m" z指南35:发布接口前请谨慎设计 1353 a% f4 P( Q' ?$ I2 f& l
指南36:编写对垃圾收集机制友好的代码 138
; D8 }, Z/ A8 I4 i第3章 可靠性 142( }. o. J3 k2 @; G
指南37:不要在子作用域里遮蔽或者掩盖标识符 142 v4 p$ g' s. {2 I# ]
指南38:不要在一个声明里声明多个变量 145' o8 e! H2 B8 z
指南39:在程序逻辑中用有意义的符号常量代表文字值 1488 C) ?2 A, P6 P1 a' `" u
指南40:在常量定义中恰当地表示相互之间的关系 153
% g6 c* X8 {1 a4 X) J指南41:对于返回数组或者集合的方法,用返回一个空数组或者集合来替代返回一个空值 154
R- U8 n' ~: \" r) f3 X指南42:只在异常的情况下使用异常 157
- m+ Y2 s( ~/ N指南43:转义 2452 m' i7 ]" f4 D! O g' Y7 G
指南72:不要使用重载的方法来区分运行时类型 2485 y% }; n! F6 q6 U$ i- G& t j
指南73:不要弄混引用的不可变性和对象的不可变性 251
0 E% H0 O+ t/ S. M' u7 b指南74:谨慎使用序列化方法writeUnshared()和readUnshared() 257
( V6 H* L5 h; ]( M. J* r指南75:不要试图通过把 B0 l3 S+ x" a: J2 m' S( U
( f4 m7 u# V- B9 r# n
百度网盘下载地址链接(百度云)下载地址:Java编码指南 PDF 电子书/ \5 I& P1 d3 w2 E' m* @
( f' y% v( u# @5 u! j$ S
9 l# v$ V; Z- i0 P& e
1 H( O! S; ~. I2 a) ] |
|