第1章软件安全开发基础1
1.1软件安全开发现状1
1.1.1软件安全面临的挑战1
1.1.2软件安全开发问题2
1.1.3软件安全问题成因5
1.2软件开发生命周期7
1.3软件安全开发模型11
1.3.1安全开发生命周期11
1.3.2内建安全成熟度模型14
1.3.3软件保证成熟度模型15
1.3.4综合的轻量应用安全过程16
1.4人员角色规划17
第2章软件安全需求与设计18
2.1安全需求概述18
2.1.1安全需求的定义18
2.1.2安全需求的标准19
2.2安全需求分析方法20
2.2.1安全需求分析过程20
2.2.2安全需求分析的常用方法20
2.3系统设计概述23
2.3.1系统设计内容23
2.3.2安全设计原则24
2.4安全设计方法26
2.4.1危险性分析27
2.4.2基于模式的软件安全设计27
2.4.3安全关键单元的确定和设计29
2.5威胁建模29
2.5.1威胁建模概述29
2.5.2威胁建模过程302.5.3威胁建模的输出与缓解35
代码安全目录
第3章C和C++安全编码37
3.1C和C++开发安全现状37
3.2C和C++常见安全漏洞38
3.2.1缓冲区溢出漏洞38
3.2.2释放后使用漏洞39
3.2.3整型溢出漏洞40
3.2.4空指针解引用漏洞40
3.2.5格式化字符串漏洞41
3.2.6内存泄漏42
3.2.7二次释放漏洞42
3.2.8类型混淆漏洞43
3.2.9未初始化漏洞43
3.3C和C++安全编码规范44
第4章Java安全编码46
4.1Java开发安全现状46
4.2Java常见安全漏洞48
4.2.1SQL注入漏洞48
4.2.2XSS漏洞51
4.2.3重定向漏洞55
4.2.4路径遍历漏洞57
4.2.5不安全的安全哈希算法60
4.2.6XPath注入漏洞61
4.2.7硬编码密码63
4.3Java安全编码规范64
4.3.1声明和初始化64
4.3.2表达式69
4.3.3面向对象73
4.3.4方法75
4.3.5异常处理77
4.3.6线程锁81
4.3.7线程API83
4.3.8输入输出87
第5章PHP安全编码92
5.1PHP开发安全现状92
5.2PHP常见安全漏洞94
5.2.1会话攻击94
5.2.2命令注入攻击95
5.2.3客户端脚本注入攻击96
5.2.4变量覆盖漏洞98
5.2.5危险函数99
5.3PHP安全编码规范101
5.3.1语言规范102
5.3.2程序注释103
5.3.3项目规范104
5.3.4特殊规范105
5.3.5配置安全106
第6章Python安全编码108
6.1Python开发安全现状108
6.2Python常见安全威胁的防御111
6.2.1代码注入的防御111
6.2.2密码存储方式112
6.2.3异常处理机制113
6.2.4文件上传漏洞的防御115
6.3Python安全编码规范116
6.3.1代码布局116
6.3.2注释语句117
6.3.3命名规范118
6.3.4函数安全120
6.3.5编程建议121
第7章软件安全测试123
7.1安全测试概述123
7.2安全测试流程125
7.2.1安全测试具体流程125
7.2.2安全测试具体内容127
7.2.3安全测试原则129
7.2.4PDCA循环129
7.3安全测试技术131
7.3.1人工审查131
7.3.2代码分析131
7.3.3模糊测试134
7.3.4渗透测试138
第8章软件安全发布与部署141
8.1软件安全发布141
8.1.1最终安全审查141
8.1.2安全事故响应计划143
8.2软件安全部署143
8.2.1漏洞管理143
8.2.2环境强化143
8.2.3操作激活143
第9章典型案例144
9.1应用背景144
9.2企业需求144
9.3解决方案145
9.4方案优势147
附录A英文缩略语148
参考文献149