《开发更安全的ASP.NET 2.0应用程序》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)拜尔(Baier,D.)著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:7115177481
  • 页数:447 页
图书介绍:本书由一位在安全领域内出类拔萃的专家编写,他与读者们分享了他的最佳经历、实用的指导以及用C#编写的富有扩展性的代码实例,以帮助读者开发出更加健壮的、高可用的、更加有能力防止攻击的Web应用程序。本书内容包括:如何使你的Web Sever、操作系统、通信协议以及ASP.NET更加健壮;实用正则表达式、沙箱技术以及其他技术规范输入数据;理解不同加密方法的设计与应用;集成Microsoft Windows各种安全特性;部署WebFarm,Single Sign-on以及Mixed-mode的授权;为用户和角色的管理和授权使用基于提供者的特性等。

第1章 Web应用程序安全 1

1.1 OWASP Top 10 2

1.2 总体原则 3

1.2.1 安全是一种特性 4

1.2.2 使用最低权限 4

1.2.3 预防、监测和反应 4

1.2.4 分层防御 5

1.2.5 不存在可信的输入 5

1.2.6 注意故障模式 5

1.2.7 注意应用程序拒绝服务 5

1.2.8 首选默认安全措施 5

1.2.9 加密不能确保安全 6

1.2.10 防火墙不能确保安全 6

1.3 小结 7

第2章 ASP.NET 2.0架构 8

2.1 理解宿主 8

2.2 理解管线 12

2.2.1 HTTP模块 12

2.2.2 编写模块 14

2.2.3 处理程序 15

2.2.4 检查管线 16

2.3 编译ASP.NET页 19

2.4 小结 22

第3章 输入验证 23

3.1 什么是输入 23

3.2 输入验证的必要性 25

3.3 输入验证技术 32

3.3.1 黑名单 32

3.3.2 白名单 35

3.4 缓解技术 39

3.4.1 输出编码 39

3.4.2 沙盒 43

3.4.3 完整性检查 44

3.5 ASP.NET应用程序中的验证 45

3.5.1 自动验证服务 45

3.5.2 表单验证 53

3.5.3 创建自定义验证控件 64

3.6 小结 71

第4章 存储机密 72

4.1 识别攻击和攻击者 72

4.2 加密术是救星吗 73

4.3 哈希数据 73

4.3.1 哈希算法 74

4.3.2 .NET的哈希算法 75

4.4 保存密码 76

4.5 加密数据 79

4.5.1 对称性加密 79

4.5.2 加密算法 80

4.5.3 密钥和密钥大小 81

4.5.4 .NET的对称性加密 86

4.5.5 完整性保护 87

4.5.6 整合:设计使用对称性加密的应用程序 89

4.5.7 非对称性加密 96

4.5.8 证书 97

4.5.9 在.NET中使用非对称性加密证书 99

4.5.10 整合:设计使用非对称性加密和证书的应用程序 104

4.6 使用Windows数据保护API 110

4.7 保护配置数据 113

4.7.1 配置和安装 114

4.7.2 保护配置 116

4.8 保护ViewState 120

4.9 小结 123

第5章 验证和授权 125

5.1 基础知识 125

5.1.1 术语 126

5.1.2 应用程序设计 126

5.1.3 ASP.NET安全管道 129

5.1.4 .NET安全架构和基于角色的安全 131

5.1.5 服务器验证 136

5.2 使用Windows账户 137

5.2.1 IIS验证方法 138

5.2.2 授权 143

5.2.3 模拟 143

5.2.4 委托 152

5.2.5 安全上下文和访问外部资源 158

5.3 使用自定义账户 161

5.3.1 表单验证 162

5.3.2 表单验证机制 165

5.3.3 配置表单验证 167

5.3.4 确保表单验证的安全 168

5.3.5 自定义表单验证 169

5.3.6 Web场 177

5.3.7 单点登录 178

5.3.8 使用ASP.NET保护非ASP.NET资源 182

5.4 混合方法 188

5.4.1 手动Windows验证 188

5.4.2 协议转换 197

5.4.3 对自定义账户实现基本验证 198

5.4.4 用户证书 201

5.4.5 混合模式验证 210

5.5 小结 216

第6章 安全提供程序和控件 217

6.1 理解成员功能 218

6.1.1 方法 218

6.1.2 事件 221

6.1.3 成员配置 222

6.1.4 SQL成员提供程序 222

6.1.5 Active Directory成员提供程序 225

6.1.6 与成员相关的控件 227

6.2 理解角色管理器 232

6.2.1 角色管理器模块 234

6.2.2 角色管理器配置 236

6.2.3 SQL角色提供程序 238

6.2.4 Windows令牌角色提供程序 239

6.2.5 授权存储角色提供程序 242

6.2.6 与角色相关的控件 244

6.2.7 成员和角色打包 245

6.3 使用SiteMap导航 245

6.4 创建功能和提供程序 248

6.5 指南 269

6.6 小结 270

第7章 日志和监测 271

7.1 错误处理 271

7.1.1 获取401非授权错误 274

7.1.2 错误处理 276

7.2 日志和监测 280

7.2.1 事件日志 282

7.2.2 性能监视器 284

7.2.3 电子邮件 286

7.2.4 Windows管理监测 287

7.2.5 ASP.NET跟踪和System.Diagnostics.Trace 291

7.2.6 日志和部分信任 294

7.3 健康监测框架 295

7.3.1 创建事件 296

7.3.2 配置健康检测 299

7.3.3 SQL服务器提供程序 307

7.3.4 WMI提供程序 308

7.3.5 电子邮件提供程序 309

7.3.6 编写自定义提供程序 311

7.3.7 编写自定义缓冲提供程序 314

7.3.8 状态监视和部分信任 317

7.3.9 指南 318

7.4 小结 318

第8章 部分信任ASP.NET 319

8.1 为什么选择部分信任 319

8.2 配置部分信任 324

8.3 理解策略文件 327

8.3.1 安全类 327

8.3.2 命名权限集 328

8.3.3 代码组 329

8.3.4 策略加载和解析 331

8.4 自定义策略文件 332

8.5 分割代码 337

8.5.1 重构代码 338

8.5.2 堆栈审核 341

8.5.3 为经过分区的程序集修改策略 343

8.5.4 限制调用组件的用户 346

8.6 创建自定义权限 348

8.6.1 权限类 348

8.6.2 封装 355

8.6.3 属性 355

8.7 SecurityException的作用 356

8.8 锁定配置 358

8.9 小结 359

第9章 部署和配置 360

9.1 总指导原则 360

9.2 操作系统强化 361

9.2.1 自动更新 362

9.2.2 禁用服务和协议 362

9.2.3 包过滤 364

9.2.4 保护Windows文件共享 365

9.2.5 审核 366

9.3 数据库服务器强化 366

9.4 Web服务器强化 367

9.4.1 应用程序池 367

9.4.2 Web服务扩展 368

9.4.3 Web内容 369

9.4.4 HTTP头 369

9.4.5 日志 369

9.4.6 URLScan 369

9.4.7 访问控制列表 370

9.4.8 启用SSL 372

9.4.9 验证方法 373

9.5 ASP.NET强化 373

9.5.1 配置锁死 373

9.5.2 推荐设置 376

9.5.3 预编译 380

9.6 小结 382

第10章 工具和资源 383

10.1 工具类型 383

10.2 确定合适的工具 383

10.3 浏览代理服务器和HTTP协议检测工具 384

10.3.1 Fiddler 385

10.3.2 Paros 385

10.3.3 WebScarab 385

10.3.4 WSDigger 386

10.4 黑盒扫描器 386

10.4.1 SPI Dynamics WebInspect 387

10.4.2 Watchfire AppScan 387

10.4.3 Berretta 387

10.5 配置分析 387

10.5.1 SSL Digger 387

10.5.2 PermCalc 388

10.5.3 Desaware CAS Tester 388

10.5.4 ANSA 388

10.5.5 IIS Lockdown 388

10.6 源代码分析器 388

10.6.1 Foundstone CodeScout 392

10.6.2 Microsoft PREfix和PREfast 392

10.6.3 Compuware ASP.NET Security Checker 393

10.6.4 SPI Dynamics DevInspect 394

10.7 多功能工具 394

10.8 二进制分析 399

10.8.1 静态二进制分析工具 399

10.8.2 动态(“运行时”)二进制分析 401

10.8.3 调试器 403

10.8.4 反编译器/模糊处理器 403

10.9 数据库扫描器 405

10.9.1 AppDetective 405

10.9.2 MetaCoretex 406

10.9.3 NGSSquirrel 406

10.10 博客 406

10.11 小结 408

附录A 创建自定义受保护配置提供程序 409

附录B 会话状态 413

B.1 会话状态如何工作 414

B.1.1 Cookie vs.查询字符串 414

B.1.2 超时设定 415

B.1.3 会话模式 415

B.2 会话存储 416

B.2.1 进程内提供程序 416

B.2.2 状态服务器 416

B.2.3 SQL Server 417

B.3 小结 419

附录C 分拆ASP.NET应用程序 420

C.1 创建服务器端 421

C.2 创建客户端 424

C.3 创建部分信任客户端 425

C.4 小结 427

附录D 安全的Web服务 428

D.1 适用情况 428

D.2 安全的通信和服务器验证 428

D.3 客户端验证 430

D.4 小结 431

附录E 使用Visual StudioTeam Edition进行单元测试 432

E.1 测试驱动开发 432

E.2 运行测试 433

E.3 测试现有代码 434

E.4 测试列表和测试运行配置 435

E.5 建立正确的测试环境 437

E.6 测试私有方法 438

E.7 预期的错误 439

E.8 数据驱动测试 440

E.9 数据驱动测试的数据管理 442

E.10 测试Web服务代码 443

E.11 在ASP.NET内部运行测试 445

E.12 小结 447