Java编码指南 编写安全可靠程序的75条建议 英文版PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(美)莫欣达著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2015
- ISBN:9787115404015
- 页数:261 页
Chapter 1 安全 1
1.限制敏感数据的生命周期 2
2.不要在客户端存储未经加密的敏感数据 5
3.为敏感可变类提供不可修改的包装器 9
4.确保安全敏感方法被调用时参数经过验证 11
5.防止任意文件上传 13
6.正确地编码或转义输出 16
7.防止代码注入 20
8.防止XPath注入 23
9.防止LDAP注入 27
10.不要使用clone()方法来复制不可信的方法参数 31
11.不要使用Object.equals()来比较密钥 34
12.不要使用不安全的弱加密算法 36
13.使用散列函数存储密码 37
14.确保SecureRandom正确地选择随机数种子 42
15.不要依赖可以被不可信代码覆写的方法 44
16.避免授予过多特权 50
17.最小化特权代码 54
18.不要将使用降低安全性检查的方法暴露给不可信代码 56
19.对细粒度的安全定义自定义安全权限 64
20.使用安全管理器创建一个安全的沙盒 67
21.不要让不可信代码误用回调方法的特权 72
Chapter 2 防御式编程 79
22.最小化变量的作用域 80
23. 最小化@SuppressWarnings注解的作用域 82
24.最小化类及其成员的可访问性 84
25.文档化代码的线程安全性 89
26.为方法的结果值提供反馈 96
27.使用多个文件属性识别文件 99
28.不要赋予枚举常量的序号任何特殊意义 106
29.注意数字提升行为 108
30.对可变参数的类型做编译时类型检查 112
31.不要把其值在以后版本里可能会发生变化的常量设置为publicfinal 115
32.避免包之间的循环依赖 118
33.使用用户自定义的异常而非宽泛的异常类型 121
34.尽量从系统错误中优雅恢复 123
35.布接口前请谨慎设计 125
36.编写对垃圾回收机制友好的代码 128
Chapter 3 可靠性 131
37.不要在子作用域里遮蔽或者掩盖标识符 132
38.不要在一个声明里声明多个变量 134
39.在程序逻辑中用有意义的符号常量代表文字值 138
40.在常量定义中恰当地表示相互之间的关系 142
41.对于返回数组或者集合的方法,用返回一个空数组或者集合来替代返回一个空值 143
42.只在异常的情况下使用异常 146
43.使用try-with-resources语句安全处理可关闭的资源 148
44.不要使用断言来验证不存在的运行时错误 151
45.在条件表达式中,第二和第三个操作数应使用相同类型 153
46.不要序列化直接指向系统资源的句柄 157
47.更倾向于使用迭代器而不是枚举 159
48.对于短生存周期、不常用的对象不要使用直接缓冲区 162
49.从长生存周期容器对象中移除短生存周期对象 163
Chapter4 程序的可理解性 167
50.谨慎使用视觉上有误导性的标识符和文字 167
51.避免歧义重载变参方法 171
52.要避免使用带内错误指示器 173
53.不要在条件表达式中进行赋值 175
54.请使用大括号把if、for或while代码体括起来 178
55.不要直接在if、for或while条件语句后面加分号 180
56.在每一个case分支的代码块中加上break语句 181
57.避免不当的计算循环计数器 183
58.使用括号表示操作的优先级 186
59.不要对文件的创建做任何假设 189
60.做浮点运算前把整数转换为浮点数 191
61.确保对象的clone()方法中有调用super.clone() 194
62.保持注释的一致性和可读性 196
63.检测并移除冗余的代码和值 198
64.尽量保证逻辑完备 202
65.避免有歧义的重载或者误导性的重载 205
Chapter 5 程序员的常见误解 209
66.不要假设使用volatile关键字声明引用可以保证引用所指对象的安全发布 209
67.不要假设sleep()、yield()或getState()方法提供了同步语义 216
68.不要假设对整数做取余运算总是返回正整数 220
69.不要弄混抽象对象的相等性和引用的相等性 222
70.理解按位运算符和逻辑运算符之间的差异 225
71.理解加载字符串时如何做特殊字符转义 228
72.不要使用重载的方法来区分运行时类型 231
73.不要弄混引用的不可变性和对象的不可变性 234
74.谨慎使用序列化方法writeUnshared()和readUnshared() 239
75.不要试图通过把本地引用变量设置为nul l来帮助垃圾收集器 243
Appendix A Android 245
术语表 249
参考文献 255
- 《卓有成效的管理者 中英文双语版》(美)彼得·德鲁克许是祥译;那国毅审校 2019
- 《AutoCAD 2018自学视频教程 标准版 中文版》CAD/CAM/CAE技术联盟 2019
- 《跟孩子一起看图学英文》张紫颖著 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019
- 《复分析 英文版》(中国)李娜,马立新 2019
- 《张世祥小提琴启蒙教程 中英文双语版》张世祥编著 2017
- 《生物化学 本科临床 英文版》张晓伟 2018
- 《理想国 全英文原版》(古希腊)柏拉图著 2017
- 《Dreamweaver CC 2018标准实例教程 中文版》杨雪静,胡仁喜编著 2019
- 《给幼儿园园长的50条建议》张春炬主编 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019