JAVA编码指南 编写安全可靠程序的75条建议PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(美)FRED LONG,DHRUV MOHINDRA,ROBERT C.SEACORD,DEAN F.SUTHERLAND等著;刘先宁,尤青松译
- 出 版 社:北京:人民邮电出版社
- 出版年份:2015
- ISBN:9787115403711
- 页数:263 页
第1章 安全 1
指南1:限制敏感数据的生命周期 2
指南2:不要在客户端存储未经加密的敏感数据 5
指南3:为敏感可变类提供不可修改的包装器 9
指南4:确保安全敏感方法被调用时参数经过验证 12
指南5:防止任意文件上传 13
指南6:正确地编码或转义输出 17
指南7:防止代码注入 21
指南8:防止XPath注入 24
指南9:防止LDAP注入 28
指南10:不要使用clone()方法来复制不可信的方法参数 32
指南11:不要使用Object.equals()来比较密钥 35
指南12:不要使用不安全的弱加密算法 37
指南13:使用散列函数存储密码 38
指南14:确保SecureRandom正确地选择随机数种子 43
指南15:不要依赖可以被不可信代码覆盖的方法 44
指南16:避免授予过多特权 51
指南17:最小化特权代码 55
指南18:不要将使用降低安全性检查的方法暴露给不可信代码 57
指南19:对细粒度的安全定义自定义安全权限 66
指南20:使用安全管理器创建一个安全的沙盒 69
指南21:不要让不可信代码误用回调方法的特权 73
第2章 防御式编程 81
指南22:最小化变量的作用域 81
指南23:最小化@SuppressWarnings注解的作用域 84
指南24:最小化类及其成员的可访问性 86
指南25:文档化代码的线程安全性 92
指南26:为方法的结果值提供反馈 98
指南27:使用多个文件属性识别文件 101
指南28:不要赋予枚举常量的序号任何特殊意义 109
指南29:注意数字提升行为 111
指南30:对可变参数的类型做编译时类型检查 115
指南31:不要把其值在以后版本里可能会发生变化的常量设置为public final 118
指南32:避免包之间的循环依赖 120
指南33:使用用户自定义的异常而非宽泛的异常类型 124
指南34:尽量从系统错误中优雅恢复 126
指南35:发布接口前请谨慎设计 128
指南36:编写对垃圾收集机制友好的代码 131
第3章 可靠性 135
指南37:不要在子作用域里遮蔽或者掩盖标识符 136
指南38:不要在一个声明里声明多个变量 138
指南39:在程序逻辑中用有意义的符号常量代表文字值 141
指南40:在常量定义中恰当地表示相互之间的关系 145
指南41:对于返回数组或者集合的方法,用返回一个空数组或者集合来替代返回一个空值 146
指南42:只在异常的情况下使用异常 149
指南43:使用try-with-resources语句安全处理可关闭的资源 151
指南44:不要使用断言来验证不存在的运行时错误 154
指南45:在条件表达式中,第二个和第三个操作数应使用相同类型 156
指南46:不要序列化直接指向系统资源的句柄 160
指南47:更倾向于使用迭代器而不是列举 162
指南48:对于短生存周期、不常用的对象不要使用直接缓冲区 165
指南49:从长生存周期容器对象中移除短生存周期对象 166
第4章 程序的可理解性 169
指南50:谨慎使用视觉上有误导性的标识符和文字 169
指南51:避免歧义重载变参方法 172
指南52:要避免使用带内错误指示器 174
指南53:不要在条件表达式中进行赋值 177
指南54:请使用大括号把if、for或while代码体括起来 179
指南55:不要直接在if、for或while条件语句后面加分号 182
指南56:在每一个case分支的代码块中加上break语句 182
指南57:避免不当的计算循环计数器 185
指南58:使用括号表示操作的优先级 188
指南59:不要对文件的创建做任何假设 190
指南60:做浮点运算前把整数转换为浮点数 192
指南61:确保对象的clone()方法中有调用super.clone() 195
指南62:保持注释的一致性和可读性 197
指南63:检测并移除冗余的代码和值 199
指南64:尽量保证逻辑完备 203
指南65:避免有歧义的重载或者误导性的重载 206
第5章 程序员的常见误解 211
指南66:不要假设使用volatile关键字声明引用可以保证引用所指对象的安全发布 211
指南67:不要假设sleep()、yield()或getState()方法提供了同步语义 218
指南68:不要假设对整数做取余运算总是返回正整数 222
指南69:不要弄混抽象对象的相等性和引用的相等性 224
指南70:理解按位运算符和逻辑运算符之间的差异 227
指南71:理解加载字符串时如何做特殊字符转义 230
指南72:不要使用重载的方法来区分运行时类型 233
指南73:不要弄混引用的不可变性和对象的不可变性 235
指南74:谨慎使用序列化方法writeUnshared()和readUnshared() 240
指南75:不要试图通过把本地引用变量设置为null来帮助垃圾收集器 245
附录 Android 247
术语表 251
参考文献 257
- 《给幼儿园园长的50条建议》张春炬主编 2019
- 《记忆编码》陈雪媛责编;雷雨晴译者;(俄罗斯)亚瑟·杜姆切夫 2020
- 《大夏书系 中小学古诗词评点及教学建议》赵希斌,杨思航 2019
- 《选专业,读大学 来自中国著名大学的专业教师的建议》卢春霞 2019
- 《中国骨干旅游高职院校教材编写出版项目 中国饮食文化》邵万宽 2016
- 《给教师的建议》叶圣陶著 2019
- 《中国中小企业2018蓝皮书 民营企业投资状况分析及对策建议》本书编委会 2018
- 《基于记录值的可靠性分布模型的统计推断研究》周慧 2019
- 《可靠性理论中的数学方法》艾尼·吾甫尔著 2020
- 《装备性能可靠性建模及维修策略优化技术》李大伟 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