第1章 黑客方法论 1
1.1 概过 1
1.2 黑客简史 2
1.2.1 电话系统黑客 3
1.2.2 计算机黑客 3
1.3 产生黑客的原因 5
1.3.1 黑客的两面性 5
1.3.2 与安全专家共事 6
1.4 当前存在的几种攻击类型 7
1.4.1 DoS/DDoS 7
1.4.2 病毒攻击 8
1.4.3 窃取 13
1.5 Web应用程序面临的安全威胁 15
1.5.1 隐藏操作 16
1.5.2 参数篡改 16
1.5.3 站际脚本 16
1.5.4 缓冲区溢出 16
1.5.5 cookie毒药 17
1.6 预防黑客人侵 17
1.7 小结 18
1.8 解决方案快速检索 19
1.9 常见问题 21
第2章 代码磨工 23
2.1 概述 23
2.2 代码磨工简介 24
2.3 创造性地编码 27
2.4 从代码磨工的角度考虑安全问题 30
2.5 创建功能安全的Web应用程序 32
2.5.1 代码实现了它的功能 37
2.5.2 比功能更重要的安全问题 39
2.5.3 安全和功能兼得 40
2.6 小结 44
2.7 解决方案快速检索 44
2.8 常见问题 45
第3章 移动代码的危害性 47
3.1 概述 47
3.2 移动代码攻击产生的影响 47
3.2.1 测览器攻击 48
3.2.2 客户端邮件系统攻击 48
3.2.3 恶意脚本或者宏 49
3.3 认识基本形式的移动代码 49
3.3.1 宏语言:VBA 50
3.3.2 JavaScript 54
3.3.3 VBScript 57
3.3.4 Java小程序 59
3.3.5 ActiveX控件 61
3.3.6 电子邮件附件和下载的可执行程序 64
3.4 保护系统免受移动代码攻击 66
3.4.1 安全软件 67
3.4.2 基于Web的工具 69
3.5 小结 70
3.6 解决方案快速检索 71
3.7 常见问题 71
第4章 易受攻击的CGI脚本 73
4.1 概述 73
4.2 认识CGI脚本 73
4.2.1 CGI脚本的典型用法 75
4.2.2 何时选择CGI 79
4.2.3 CGI脚本的主机问题 80
4.3 蹩脚的CGI脚本导致的非法入侵 80
4.3.1 编写牢固的CGI脚本 82
4.3.2 可搜索索引命令 84
4.3.3 CGI封装程序 84
4.4 tol脚本的编程语言 87
4.4.1 UNIX Shell 87
4.4.2 Perl 88
4.4.3 C/C++ 88
4.4.4 Visual Basic 88
4.5 CGI脚本的优点 89
4.6 编写安全的CGI脚本的规则 89
4.7 小结 93
4.8 解决方案快速检索 93
4.9 常见问题 95
第5章 黑窑技术和工具 96
5.1 概述 96
5.2 黑客的目标 97
5.2.1 减小被检测到的可能性 97
5.2.2 扩大访问权限 98
5.2.3 损失,损失,损失 100
5.2.4 反败为胜 101
5.3 黑客攻击的五个阶段 102
5.3.1 勾画攻击地图 102
5.3.2 制订可行计划 104
5.3.3 寻找突破口 105
5.3.4 持续深人访问 105
5.3.5 攻击 107
5.4 社会工程术 108
5.5 恶意的”后门”攻击 113
5.6 利用代码或编程环境的先天性缺陷 114
5.7 行业工具 115
5.7.1 十六进制编辑器 115
5.7.2 调试器 116
5.7.3 反汇编器 117
5.8 小结 119
5.9 解决方案快速检索 119
5.10 常见问题 121
第6章 代码审计与逆向工程 123
6.1 概述 123
6.2 如何有效跟踪程序 123
6.3 审计和评估几种程序设计语言 125
6.3.1 Java 125
6.3.2 Java Server Puges 126
6.3.3 Active Server Pages 126
6.3.4 Server Side Includes 126
6.3.5 Pytnon 126
6.3.6 Tool Command Language 126
6.3.7 PracticalExtraction and ReportingLanguage 127
6.3.8 PHP:Hypertext Preprocessor 127
6.3.9 C/C++ 127
6.3.10 ColdFusion 127
6.4 寻找弱点 128
6.4.1 从用户那里获得数据 128
6.4.2 查找缓冲区溢出 128
6.4.3 检查对用户的输出 130
6.4.4 检查文件系统的存取歧互 133
6.4.5 检查外部程序和代码的执行情况 135
6.4.6 检查结构化查询语言(SQL)/数据库查询 137
6.4.7 检查网络和通信报文流 138
6.5 综合考虑 139
6.6 小结 139
6.7 解决方案快速检索 140
6.8 常见问题 140
第7章 保护Java代码 142
7.1 概述 142
7.2 Java安全体系概述 143
7.2.1 Java安全模型 144
7.2.2 沙盘 145
7.3 Java的安全处理机制 148
7.3.1 类加载器 148
7.3.2 字节码校验器 152
7.3.3 Java保护域 155
7.4 Java的潜在弱点 162
7.4.1 DoS攻击用医务降级攻击 163
7.4.2 第三方特洛伊木马攻击 165
7.5 编写安全而有效的Java applet 166
7.5.1 消息文摘 166
7.5.2 数字签名 169
7.5.3 身份识别 174
7.5.4 使用JAN签名来保证安全 180
7.5.5 加密 182
7.5.6 Sun Microsystems对Java的安全建议 188
7.6 小结 189
7.7 解决方案快速检索 190
7.8 常见问题 191
第8章 保护XML 193
8.1 概述 193
8.2 XML的定义 193
8.2.1 逻辑结构 194
8.2.2 元素 195
8.2.3 XML和XSL/DTD文档 197
8.2.4 XSL模板的使用 198
8.2.5 XSL模式的使用 198
8.2.6 DTD 201
8.3 使用XML创建Web应用程序 203
8.4 使用XML伴随的风险 207
8.5 保护XML 208
8.5.1 XML加密 209
8.5.2 XML数字签名 214
8.6 小结 216
8.7 解决方案快速检索 216
8.8 常见问题 217
第9章 保护ActiveX网络控件 219
9.1 概述 219
9.2 使用ActiveX伴随的危险 219
9.2.1 避免ActiveX的常见弱点 220
9.2.2 减少ActiveX弱点的影响 223
9.3 编写安全ActiveX控件的方法 225
9.4 保护ActiveX控件 227
9.4.1 控件签名 227
9.4.2 标记控件 229
9.5 小结 235
9.6 解决方案快速检索 236
9.7 常见问题 237
第10章 保护ColdFusion 239
10.1 概述 239
10.2 ColdFusion的工作方式 239
10.2.1 充分利用快速开发的优点 240
10.2.2 ColdFusion标记语言 242
10.3 保护ColdFusion的安全 243
10.3.1 安全开发 245
10.3.2 安全配置 253
10.4 ColdFusion应用程序处理 254
10.4.1 数据存在性检验 254
10.4.2 数据类型检验 255
10.4.3 数据赋值 257
1O.5 使用ChldFusion伴随的危险 258
10.6 使用逐个会话跟踪 264
10.7 小结 266
10.8 解决方案快速检索 266
10.9 常见问题 267
第11章 开发安全的应用程序 268
11.1 概述 268
11.2 使用安全应用程序的好处 269
11.3 应用程序中使用的安全类型 269
11.3.1 数字签名 270
11.3.2 Pretty Good Privacy 270
11.3.3 安全多用途网际邮件扩充协议 273
11.3.4 安全套按字协议层 273
11.3.5 数字证书 277
11.4 PKI基础知识回顾 278
11.5 使用PKI保护Web应用程序 281
11.6 在Web基础结构中实现PKI 282
11.6.1 Microsoft的证书服务 282
11.6.2 Netscape证书服务 285
11.6.3 Apache服务器的PKI 289
11.6.4 PKI和安全软件包 292
11.7 测试安全实现 292
11.8 小结 294
11.9 解决方案快速检索 295
11.10 常见问题 296
第12章 制订安全计划指导工作 298
12.1 概述 298
12.2 代码审查 299
12.2.1 代码审查 299
12.2.2 对等代码审查 300
12.3 意识到代码的脆弱性 303
12.4 编码时使用常识 305
12.4.1 计划编制 305
12.4.2 编码标准 306
12.4.3 工具 307
12.5 制订安全计划 309
12.5.1 网络级安全计划 310
12.5.2 应用程序级安全计划 310
12.5.3 桌面级安全计划 311
12.5.4 Web应用程序安全处理 311
12.6 小结 312
12.7 解决方案快速检索 313
12.8 常见问题 313