《Java编码指南:编写安全可靠程序的75条建议》—— 导读

《Java编码指南:编写安全可靠程序的75条建议》—— 导读_第1张图片

前言

本书为Java程序员提供了具体的建议。这些Java编码指南的应用将会带来更健壮、更能抵御攻击的系统。这些编码指南覆盖范围广泛,适用于大多数基于Java编写的运行在不同设备上的产品,这些设备包括电脑、游戏机、手机、平板电脑、家用电器和汽车电子设备。

不管是哪一门编程语言,开发人员在控制程序结构时都应遵守一系列基于该语言特定规则的指南。Java程序员也理应如此。

为了编写安全可靠的Java程序,Java程序员需要很多的帮助,单凭Java语言规范(Java Language Specification,JLS)[JLS 2013]是远远不够的。由于Java包含的许多语言特性和API很容易被误用,因此需要一些必要的避免这些陷阱的指导。

对于一个程序来说,可靠意味着在所有场景或所有可能输入条件下均能正常工作。不可避免的是,任何重要的程序都会遇到一些完全意想不到的输入或场景,从而发生错误。当此类错误发生时,最重要的是它产生的影响必须是有限的,而这可以通过快速定位错误并尽快处理它来实现。预期不寻常的输入或编程场景,并采用防御式编程方式,程序员会受益良多。

其中一些指南可能被认为是一种编码风格,但对于代码的可读性和可维护性来说,它们仍然很重要。针对Java语言,Oracle公司提供了一组编码约定[Conventions 2009]来帮助程序员编写具有一致编程风格的代码,这些约定已经被Java程序员广泛采用。

目录

第1章 安全
指南1:限制敏感数据的生命周期
指南2:不要在客户端存储未经加密的敏感数据
指南3:为敏感可变类提供不可修改的包装器
指南4:确保安全敏感方法被调用时参数经过验证
指南5:防止任意文件上传
指南6:正确地编码或转义输出
指南7:防止代码注入
指南8:防止XPath注入
指南9:防止LDAP注入
指南10:不要使用clone()方法来复制不可信的方法参数
指南11:不要使用Object.equals()来比较密钥
指南12:不要使用不安全的弱加密算法
指南13:使用散列函数存储密码
指南14:确保SecureRandom正确地选择随机数种子
指南15:不要依赖可以被不可信代码覆盖的方法
指南16:避免授予过多特权
指南17:最小化特权代码
指南18:不要将使用降低安全性检查的方法暴露给不可信代码
指南19:对细粒度的安全定义自定义安全权限
指南20:使用安全管理器创建一个安全的沙盒
指南21:不要让不可信代码误用回调方法的特权

第2章 防御式编程

第3章 可靠性

第4章 程序的可理解性

第5章 程序员的常见误解

你可能感兴趣的:(《Java编码指南:编写安全可靠程序的75条建议》—— 导读)