图书介绍

安全编程:代码静态分析2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

安全编程:代码静态分析
  • (美)BrianChess,JacobWest著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111233213
  • 出版时间:2008
  • 标注页数:362页
  • 文件大小:87MB
  • 文件页数:383页
  • 主题词:软件开发-安全技术

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

安全编程:代码静态分析PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 软件安全和静态分析第1章 软件安全问题1

1.1 仅有防御性编程还不够1

1.2 安全功能≠安全的功能3

1.3 质量的误区4

1.4 软件开发全局中的静态分析6

1.5 漏洞分类7

1.5.1 7种有害的领域9

1.5.2 “7种有害的领域”与“OWASP前10名”11

1.6 小结11

第2章 静态分析简介12

2.1 静态分析的能力和局限性12

2.2 通过静态分析解决问题13

2.2.1 类型检查14

2.2.2 风格检查15

2.2.3 程序理解16

2.2.4 程序验证和属性检查17

2.2.5 Bug查找19

2.2.6 安全审查20

2.3 一点理论,一点实际21

2.3.1 成功准则22

2.3.2 分析源代码与分析编译后的代码25

2.4 小结28

第3章 作为代码审查过程组成部分的静态分析29

3.1 执行代码审查29

3.1.1 代码审查周期30

3.1.2 避开可利用性陷阱33

3.2 将安全审查加入到现有的开发过程中34

3.2.1 采用工具的疑虑36

3.2.2 小处着手,循序渐进38

3.3 静态分析度量标准39

3.4 小结44

第4章 静态分析技术内幕45

4.1 建模45

4.1.1 词法分析46

4.1.2 解析46

4.1.3 抽象语法47

4.1.4 语义分析48

4.1.5 跟踪控制流49

4.1.6 跟踪数据流51

4.1.7 污染传播52

4.1.8 指针别名歧义52

4.2 分析算法53

4.2.1 断言检查53

4.2.2 单纯本地分析54

4.2.3 本地分析方法57

4.2.4 全局分析58

4.2.5 研究性的工具60

4.3 规则62

4.3.1 规则格式62

4.3.2 用于污染传播的规则65

4.3.3 本书中讨论的规则67

4.4 报告结果67

4.4.1 结果的分组和分类69

4.4.2 消除非预期的结果69

4.4.3 解释结果的意义70

4.5 小结73

第二部分 常见问题75

第5章 处理输入75

5.1 验证内容76

5.1.1 验证所有输入77

5.1.2 验证各种来源的输入77

5.1.3 建立可信边界83

5.2 如何进行验证85

5.2.1 使用强输入验证85

5.2.2 避免黑名单法89

5.2.3 不要混淆可用性和安全性91

5.2.4 拒绝不良数据92

5.2.5 默认执行正确的输入验证93

5.2.6 检验输入的长度100

5.2.7 限制数值输入102

5.3 防止元字符攻击104

5.3.1 使用参数化请求105

5.3.2 路径操纵108

5.3.3 命令注入109

5.3.4 日志欺骗110

5.4 小结112

第6章 缓冲区溢出113

6.1 缓冲区溢出简介113

6.1.1 利用缓冲区溢出漏洞114

6.1.2 缓冲区分配策略116

6.1.3 跟踪缓冲区大小120

6.2 字符串122

6.2.1 天生危险的函数122

6.2.2 有界字符串操作127

6.2.3 有界函数的常见缺陷132

6.2.4 保留Null终止符138

6.2.5 字符集、表达式和编码141

6.2.6 格式串145

6.2.7 更完善的字符串类和类库148

6.3 小结151

第7章 缓冲区溢出伴随的问题152

7.1 整数152

7.1.1 回绕错误153

7.1.2 截断和符号位扩展154

7.1.3 有符号数和无符号数之间的转换156

7.1.4 检测和防止整数溢出的方法157

7.2 运行时保护162

7.2.1 更安全的编程语言162

7.2.2 更安全的C语言164

7.2.3 动态缓冲区溢出保护166

7.2.4 动态保护基准结果169

7.3 小结170

第8章 错误和异常171

8.1 利用返回代码处理错误171

8.1.1 检查C语言中的返回值172

8.1.2 检查Java中的返回值173

8.2 管理异常174

8.2.1 捕获顶层的任何东西175

8.2.2 消失的异常176

8.2.3 只捕获需要处理的异常177

8.2.4 控制已检测的异常178

8.3 防止资源泄露180

8.3.1 C和C++180

8.3.2 Java183

8.4 日志记录和调试185

8.4.1 集中日志记录185

8.4.2 在最终代码中不包含调试帮助和“后门”访问代码187

8.4.3 清除备份文件189

8.4.4 不要容忍“复活节彩蛋”190

8.5 小结190

第三部分 特性与特色191

第9章 Web应用程序191

9.1 用于Web的输入和输出验证192

9.1.1 预料到浏览器已遭到破坏192

9.1.2 认为浏览器是一种一览无余的事物194

9.1.3 保护浏览器免受恶意内容的攻击195

9.2 HTTP考虑205

9.2.1 使用POST,而不是GET205

9.2.2 请求顺序207

9.2.3 错误处理208

9.2.4 请求出处210

9.3 维护会话状态211

9.3.1 使用强用户会话标识符212

9.3.2 强制会话空闲超时和最大会话持续时间213

9.3.3 在认证的基础上开始一个新的会话215

9.4 为输入验证使用Struts架构216

9.4.1 建立Struts Validator217

9.4.2 对所有操作使用Struts Validator218

9.4.3 验证每一个参数220

9.4.4 维护验证逻辑221

9.5 小结223

第10章 XML与Web服务224

10.1 使用XML224

10.1.1 使用一个标准兼容的XML语法分析程序225

10.1.2 开启验证226

10.1.3 要小心外部引用229

10.1.4 保持对文档查询的控制232

10.2 使用Web服务235

10.2.1 输入验证235

10.2.2 WSDL苦恼236

10.2.3 过度暴露237

10.2.4 过去错误的新机会238

10.2.5 JavaScript劫持:一种新的边界238

10.3 小结242

第11章 隐私与秘密243

11.1 隐私与规则243

11.1.1 识别私有信息243

11.1.2 处理私有信息245

11.2 外发密码249

11.2.1 源代码中不能有密码249

11.2.2 不存储明文密码251

11.3 随机数255

11.3.1 在Java中生成随机数255

11.3.2 在C和C++中生成随机数257

11.4 密码技术261

11.4.1 选择一个好的算法261

11.4.2 不要自以为是262

11.5 内存中的秘密264

11.5.1 使保持秘密的时间最短265

11.5.2 保守地共享秘密266

11.5.3 安全地删除秘密267

11.5.4 防止不必要地复制秘密268

11.6 小结269

第12章 具有特权的程序270

12.1 特权的含义271

12.1.1 最小特权原理271

12.1.2 这次我是认真的:不相信每一件事273

12.2 管理特权274

12.2.1 在实践中应用最小特权274

12.2.2 限制文件系统上的特权277

12.2.3 谨防非期待的事件279

12.3 特权提升攻击281

12.3.1 文件访问竞态条件282

12.3.2 不安全的临时文件287

12.3.3 命令注入289

12.3.4 标准文件描述符290

12.4 小结291

第四部分 静态分析实践第13章 Java语言源代码分析练习293

练习13.0 安装293

练习13.1 留意结果,现在开始294

练习13.2 人工审计源代码300

练习13.3 运行Fortify SCA302

练习13.4 理解原始的分析结果303

练习13.5 分析一个完整的应用程序307

练习13.6 使用Audit Workbench调整结果308

练习13.7 审计一个问题310

练习13.8 执行一个完整的审计313

练习13.9 编写自定义规则316

练习13.2中问题的答案321

第14章 C语言源代码分析练习324

练习14.0 安装325

练习14.1 留意结果,现在开始325

练习14.2 人工审计源代码330

练习14.3 运行Fortify SCA331

练习14.4 理解原始的分析结果332

练习14.5 分析一个完整的应用程序335

练习14.6 使用Audit Workbench调整结果335

练习14.7 审计一个问题338

练习14.8 执行一个完整的审计341

练习14.9 编写自定义规则342

练习14.2中的问题答案346

结束语349

参考文献351

热门推荐