为你推荐
译者序
对本书的赞誉
前言
致谢
第1章软件安全概论
1.1 都是软件惹的祸
1.2 对安全问题的处理
1.3 影响软件安全的技术趋势
1.4 非功能性需求
1.5 “渗透–修补”是个坏方法
1.6 艺术和工程
1.7 安全目标
1.8 常见软件安全缺陷
1.9 软件项目目标
1.10 结论
第2章软件安全风险管理
2.1 软件安全风险管理概述
2.2 安全人员的任务
2.3 软件生命周期中的软件安全人员
2.4 现实的权衡
2.5 让人们去思考安全性
2.6 软件风险管理实践
2.7 通用准则
2.8 结论
第3章技术的选择
3.1 语言的选择
3.2 分布式对象平台的选择
3.3 操作系统的选择
3.4 认证技术
3.5 结论
第4章开放源代码和封闭源代码
4.1 通过隐藏实现安全
4.2 开源软件
4.3 “多眼球现象”是真的吗
4.4 关于发布加密算法
4.5 另外两个关于开源的谬论
4.6 例子:GNU Mailman的安全
4.7 证据:特洛伊木马
4.8 开放源码还是不开放源码
4.9 另一个来自于缓冲区溢出的安全教训
4.10 忠告
4.11 结论
第5章软件安全的指导原则
5.1 确保最薄弱环节的安全
5.2 深度防御
5.3 失效安全
5.4 最小特权
5.5 分割
5.6 尽可能简单
5.7 提升隐私权
5.8 记住隐藏信息很困难
5.9 不要轻信
5.10 使用社会资源
5.11 结论
第6章软件审计
6.1 架构的安全性分析
6.2 实现安全性分析
6.3 结论
第7章缓冲区溢出
7.1 什么是缓冲区溢出
7.2 为什么缓冲溢出是安全问题
7.3 缓冲区溢出的防御
7.4 主要的陷阱
7.5 内部缓冲区溢出
7.6 更多的输入溢出
7.7 其他风险
7.8 帮助工具
7.9 堆破坏和栈破坏
7.10 堆溢出
7.11 栈溢出
7.12 代码攻击
7.13 结论
第8章访问控制
8.1 UNIX访问控制模型
8.2 Windows NT的访问控制
8.3 分割
8.4 细粒度权限
8.5 结论
第9章竞争条件
9.1 什么是竞争条件
9.2 检查时间与使用时间
9.3 安全的文件访问
9.4 临时文件
9.5 文件锁定
9.6 其他竞争条件
9.7 结论
第10章随机性和确定性
10.1 伪随机数发生器
10.2 熵的收集和估计
10.3 处理熵
10.4 实用的随机数据来源
10.5 结论
第11章密码学的应用
11.1 一般性建议
11.2 常用密码库
11.3 利用密码学编程
11.4 加密散列更多的应用
11.5 SSL和TLS
11.6 Stunnel
11.7 一次一密
11.8 结论
第12章信任管理和输入验证
12.1 关于信任
12.2 不恰当信任的例子
12.3 自动检测输入问题
12.4 结论
第13章口令认证
13.1 口令存储
13.2 向口令数据库中添加用户
13.3 口令认证的方式
13.4 口令选择
13.5 一次性口令
13.6 结论
第14章数据库安全
14.1 基础知识
14.2 访问控制
14.3 在访问控制中使用视图
14.4 字段保护
14.5 针对统计攻击的安全防卫
14.6 结论
第15章客户端安全
15.1 版权保护方案
15.2 防篡改
15.3 代码混淆
15.4 结论
第16章穿越防火墙
16.1 基本策略
16.2 客户端代理
16.3 服务器代理
16.4 SOCKS
16.5 对等网络
16.6 结论
附录A 密码学基础
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜