|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Java编码指南 编写安全可靠程序的75条建议
& }, B- D2 t: X% Z. J7 R' M h》
, d9 N4 }% T' ^- Cjava电子书推荐理由:Java之父James A.Gosling作序推荐 Java领域安全编码的倾情著作,本书体现了Java安全领域的全新研究成果,提供了很多全新的防护技巧,既能防护故意的攻击,也能防护一些意外导致的事件。书中把那些不必列入Java安全编码标准但是同样会导致系统不可靠或不安全的Java编码实践整理了出来,并为这些糟糕的实践提供了相应的文档和警告,以及合规解决方案。为读者提供了75条编码指南,每一条指南的描述结构都是一致的、直观的。+ R$ f6 o L( @! T0 E. j+ ^
* \& Q9 E& t) B0 z( d- z+ m
; a. L7 Q% w4 u4 [
作者:[美]弗雷德·朗(Fred Long)德鲁·莫欣达(Dhruv Mohindra 著' o8 @. ^" g! [, k3 |* q
出版社:人民邮电出版社2 h+ _3 V6 e2 @# Z* \
出版时间:2015-12-012 K# Z; Z: [8 y0 o5 O0 ^. I
. S u( |* h5 ^& f: `6 ?
% ]1 R1 z7 g8 j( o
2 d4 ]& L/ S2 D8 Pjava电子书目录:
8 i4 _( u: [9 t% D$ y3 K% d/ E6 k& a9 V
第1章 安全 1
. R5 S2 n, V9 ~0 I1 l: i3 L指南1:限制敏感数据的生命周期 1$ @5 u$ o" l* F6 N7 U/ H, h
指南2:不要在客户端存储未经加密的敏感数据 52 j5 V' L; K" e* A
指南3:为敏感可变类提供不可修改的包装器 10: b1 J- w3 B& [; N$ l+ X; [$ r
指南4:确保安全敏感方法被调用时参数经过验证 125 N, r/ @6 q- z: N) ?/ ^9 b
指南5:防止任意文件上传 14( m8 Z; o( H K r4 r: z
指南6:正确地编码或转义输出 17
, C" I# k* X( ~9 ]1 x6 z9 M指南7:防止代码注入 22
0 E: V+ |" u8 G指南8:防止XPath注入 25
/ W: g1 V9 j' w- F# ^- D! Q, \指南9:防止LDAP注入 30- ?% z9 j1 n5 s; {% ~* w- S2 j
指南10:不要使用clone()方法来复制不可信的方法参数 34
$ L1 N: E Y9 K* d" F指南11:不要使用Object.equals()来比较密钥 37
4 ?+ U7 X7 r8 O% c1 `6 y8 n& s# s' K指南12:不要使用不安全的弱加密算法 39& r0 i3 u) _( q8 B e R' v
指南13:使用散列函数存储密码 41
" Q& o9 S$ Z! [* [3 D指南14:确保SecureRandom正确地选择随机数种子 46
, k* W3 g a* x$ {9 u; Z指南15:不要依赖可以被不可信代码覆盖的方法 47. r( s2 w6 R- p- t a
指南16:避免授予过多特权 552 ^# u$ O4 H' @: G# E
指南17:小化特权代码 599 s: B* @ M5 ~0 D. Q: ?* r# w3 F+ ]
指南18:不要将使用降低安全性检查的方法暴露给不可信代码 615 \1 E% S% l6 W1 Q, P+ b! ]
指南19:对细粒度的安全定义自定义安全权限 707 V) M- R$ D6 c8 D6 V- c( a
指南20:使用安全管理器创建一个安全的沙盒 74
/ x( y0 B2 q; ^. o3 j指南21:不要让不可信代码误用回调方法的特权 78
4 ?' v; a: D! m- @5 G第2章 防御式编程 85
/ J4 {: n0 H: m2 R7 t+ g: y指南22:*小化变量的作用域 852 D/ }1 c* x- y; K
指南23:*小化@SuppressWarnings注解的作用域 88
5 X5 B7 j- c3 g) V0 O* s1 a; w7 U指南24:*小化类及其成员的可访问性 91
3 ^* l6 Z7 L% {& ?6 I5 \6 k指南25:文档化代码的线程安全性 967 i$ c& Z/ M/ k
指南26:为方法的结果值提供反馈 103/ F/ A {" J1 I: V
指南27:使用多个文件属性识别文件 1060 F; s# N! q: R6 i0 {/ c
指南28:不要赋予枚举常量的序号任何特殊意义 114
3 J0 }+ [6 w3 k" e) F o指南29:注意数字提升行为 116
5 ?- p5 }* e2 d3 Y( w指南30:对可变参数的类型做编译时类型检查 121! X6 `9 D: @$ T: R
指南31:不要把其值在以后版本里可能会发生变化的常量设置为public final 124
" F" c* T! p; ?' V" c指南32:避免包之间的循环依赖 127
+ B. l; _! R+ R! B3 t! n7 Y指南33:使用用户自定义的异常而非宽泛的异常类型 130
+ u# e( n' \9 g- ]指南34:尽量从系统错误中优雅恢复 133
! Q/ j: D, _6 g+ \* e! P: ~# `# U4 }5 U指南35:发布接口前请谨慎设计 135
o" ]- o, t" Q |4 J指南36:编写对垃圾收集机制友好的代码 138
8 |5 T$ d* o8 K5 H( \7 D第3章 可靠性 142
( Y2 B$ w3 _# Z7 e! F6 S5 J+ s指南37:不要在子作用域里遮蔽或者掩盖标识符 1421 W) E& u. T0 ~3 A2 M" z+ G
指南38:不要在一个声明里声明多个变量 145
5 h! ?) P* t3 Y9 _指南39:在程序逻辑中用有意义的符号常量代表文字值 148% M+ k: R1 p" P6 h" O
指南40:在常量定义中恰当地表示相互之间的关系 153$ [- @) Q! E5 {) j
指南41:对于返回数组或者集合的方法,用返回一个空数组或者集合来替代返回一个空值 154, G+ R, V7 g3 |' I7 n# i
指南42:只在异常的情况下使用异常 157# N# |$ \- U% c
指南43:转义 245
( c) Q7 T) ]7 _+ ?7 T6 |指南72:不要使用重载的方法来区分运行时类型 248
4 L1 M) a; M. l' \0 s指南73:不要弄混引用的不可变性和对象的不可变性 251% a& e( i# I/ ? j3 |+ E
指南74:谨慎使用序列化方法writeUnshared()和readUnshared() 257, f. ^" J* ]4 H# k: ?" I6 v9 P
指南75:不要试图通过把$ V& T( |& x, q+ E. W. @3 Q7 }
# _8 B% ~$ C$ a0 _/ Y9 g. D% T
百度网盘下载地址链接(百度云)下载地址:Java编码指南 PDF 电子书$ } Z3 n$ L+ d3 j8 V1 _2 E4 ?( Q
) s, ]/ b) [( Q. ~9 j. d8 R4 R
; b% U9 M- E9 C# l: p, Y9 I7 W
0 ~& f! Q- B$ R6 v" ^4 T6 T! h$ i; t3 j
|
|