《精通ASP.NET 3.5网络编程之安全策略》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:陆昌辉,丁健,王龙飞等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121112584
  • 页数:458 页
图书介绍:本书囊括了进行ASP.NET 3.5网络编程开发中用到的各种主要安全策略,共分16章,从ASP.NET动态网页开发入手,接着介绍了ASP.NET程序的开发与运行、Web安全简介、Web应用程序安全、Web用户安全完全策略等基本知识,然后介绍了ASP.NET应用程序的安全架构、ASP.NET中的输入验证、ASP.NET中的存储加密技术、ASP.NET身份验证和授权机制、等内容,最后介绍如何构建安全的ASP.NET应用程序。

第1章 ASP.NET动态网页开发概述 1

1.1 动态网页开发技术简介 1

1.1.1 ASP动态网页技术 1

1.1.2 JSP动态网页技术 2

1.1.3 PHP动态网页技术 3

1.2 .NET Framework概览 3

1.2.1 .NET Framework概念概述 4

1.2.2 .NET Framework 3.5体系结构 6

1.3 ASP.NET简介 6

1.3.1 ASP.NET简介 7

1.3.2 ASP.NET主要特性 7

1.4 ASP.NET 3.5的新特性 8

1.4.1 对AJAX和JavaScript支持 8

1.4.2 ADO.NET的改进 10

1.4.3 对Silverlight和XAML的支持 10

1.4.4 对WCF的改进 10

1.5 ASP.NET开发工具简介 10

1.5.1 Visual Studio.NET 10

1.5.2 ASP.NET Web Matrix 12

1.6 配置ASP.NET运行环境 13

1.6.1 运行环境系统要求 13

1.6.2 安装IIS 14

1.6.3 安装.NETFramework 16

1.6.4 测试运行环境 16

1.7 小结 20

第2章 Web安全简介 21

2.1 Web安全基础 21

2.1.1 理解Web安全 21

2.1.2 Web安全策略基础 22

2.1.3 安全通信 22

2.2 Web安全开发技术 23

2.2.1 IIS安全技术支持 23

2.2.2 ASP.NET安全技术支持 25

2.2.3 企业服务(Enterprise Services)安全技术支持 26

2.2.4 SQL Server安全技术支持 26

2.3 Web安全设计原则 27

2.4 Web应用程序的体系结构与设计安全性考虑 28

2.5 Web部署安全性考虑 29

2.6 Web客户端输入验证 30

2.7 Web客户端身份验证 32

2.8 Web授权访问技术 34

2.9 Web应用的配置管理 36

2.10 Web敏感数据的安全性考虑 37

2.10.1 机密数据 37

2.10.2 敏感的用户个人数据 38

2.11 Web应用会话管理的安全性考虑 39

2.12 Web应用加密技术 39

2.13 Web参数操作的安全性问题 40

2.14 Web应用异常管理 41

2.15 Web应用审核与日志机制 41

2.16 Web用户安全概述 42

2.17 建立用户证书 43

2.17.1 实施强密码 43

2.17.2 避免使用易猜测的证书 44

2.17.3 防止证书获取 45

2.17.4 限制空闲的账户 45

2.18 管理密码 46

2.18.1 存储密码 46

2.18.2 密码时效和历史记录 47

2.18.3 改变密码 48

2.19 重新设置丢失或被遗忘的密码 49

2.19.1 重新设置密码 49

2.19.2 通过电子邮件发送信息 52

2.19.3 分配临时密码 52

2.19.4 使用密码的提示问题 52

2.20 授权用户 52

2.20.1 教育用户 53

2.20.2 让用户置身其中 53

2.21 小结 53

第3章 ASP.NET应用程序的安全架构 55

3.1 .NET Web应用程序架构 55

3.1.1 多层应用程序架构 55

3.1.2 Web应用程序物理部署模型 56

3.1.3 ASP.NET关键技术 57

3.2 ASP.NET安全体系结构 58

3.2.1 ASP.NET安全结构 59

3.2.2 ASP.NET安全数据流 59

3.2.3 ASP.NET身份验证 62

3.2.4 ASP.NET授权 62

3.2.5 ASP.NET关守和关口 64

3.2.6 ASP.NET模拟 65

3.3 ASP.NET框架安全机制 66

3.3.1 代码访问安全性 66

3.3.2 主体和标识 67

3.3.3 WindowsPrincipal和WindowsIdentity 68

3.3.4 GenericPrincipal和相关的标识对象 68

3.3.5 ASP.NET和HttpContext.User 69

3.4 .NET Remoting和Web服务安全机制 69

3.4.1 .NET Remoting安全机制 69

3.4.2 Web服务安全机制 69

3.5 小结 70

第4章 ASP.NET中的输入验证 71

4.1 输入验证技术 71

4.1.1 输入验证技术简介 71

4.1.2 输入验证技术 72

4.2 缓解技术 73

4.2.1 输出编码机制 73

4.2.2 沙盒机制 75

4.2.3 完整性检查机制 75

4.3 ASP.NET应用程序中的验证 75

4.3.1 自动验证服务 75

4.3.2 表单验证 77

4.3.3 创建自定义验证控件 78

4.4 ASP.NET输入验证实例 87

4.5 小结 92

第5章 ASP.NET中的存储加密技术 93

5.1 识别攻击和攻击者 93

5.2 加密技术 95

5.3.1 加密技术简介 95

5.3.2 加密的必要性 95

5.3 哈希数据 96

5.3.1 哈希算法 96

5.3.2 .NET的哈希算法 96

5.3.3 .NET常用哈希算法的使用 97

5.3.4 C#中实现常用的哈希算法加密 98

5.4 .NET数据保护措施 104

5.4.1 加密算法 104

5.4.2 密钥和密钥大小 105

5.4.3 对称性加密 105

5.4.4 .NET的对称性加密 106

5.4.5 非对称性加密 108

5.4.6 在.NET中使用非对称性加密证书 109

5.4.7 证书 111

5.4.8 完整性保护 112

5.5 使用Windows数据保护API 113

5.5.1 DPAPI简介 113

5.5.2 DPAPI使用实例 114

5.6 保护配置数据 119

5.6.1 保护配置数据的前提 119

5.6.2 确定要保护的配置数据 120

5.6.3 加密选项 121

5.6.4 以编程方式对配置文件进行加密 122

5.6.5 命令行工具aspnet regiis.exe介绍 123

5.7 保护ViewState 124

5.8 小结 128

第6章 ASP.NET身份验证和授权机制 129

6.1 使用Windows身份验证 129

6.1.1 Windows身份验证的工作方式 130

6.1.2 ASP.NET中Windows身份验证API 131

6.1.3 实现Windows身份验证 131

6.1.4 自定义Windows身份验证 135

6.2 使用.NET passport身份验证 136

6.2.1 .NET passport身份验证的工作方式 136

6.2.2 实现.NET passport身份验证 137

6.2.3 .NET passport类 140

6.2.4 自定义.NET passport身份验证 140

6.3 使用窗体身份验证 140

6.3.1 窗体身份验证的工作方式 141

6.3.2 窗体身份验证API 141

6.3.3 实现窗体身份验证 142

6.4 自定义身份验证 143

6.4.1 为自定义身份验证配置web.config 144

6.4.2 处理AuthenticateRequest事件 144

6.4.3 创建自己的主体和标识 144

6.4.4 在运行阶段附加自定义身份验证 145

6.5 ASP.NET中授权方式 145

6.5.1 基于角色的授权 145

6.5.2 基于资源的授权 150

6.6 综合实例 151

6.6.1 Forms身份验证实例 151

6.6.2 Windows身份验证实例 159

6.7 小结 159

第7章 ASP.NET代码访问安全 161

7.1 代码访问安全性介绍 161

7.2 代码访问安全性基础知识 162

7.2.1 编写可验证为类型安全的代码 162

7.2.2 安全性语法 163

7.2.3 请求权限 164

7.2.4 使用安全类库 171

7.2.5 使用托管包装类 172

7.3 编写安全类库 172

7.3.1 安全要求 172

7.3.2 重写安全检查 175

7.3.3 用于类和成员范围的声明式安全 179

7.3.4 安全优化 180

7.3.5 安全透明的代码 182

7.4 编写安全托管控件 184

7.4.1 开发 184

7.4.2 部署 184

7.5 创建自己的代码访问权限 185

7.5.1 设计权限 185

7.5.2 实现自定义权限 186

7.5.3 添加声明式安全支持 193

7.5.4 请求自定义权限 194

7.5.5 更新安全策略 194

7.5.6 创建其他自定义权限 195

7.6 小结 196

第8章 部分信任ASP.NET 197

8.1 为什么选择部分信任 197

8.2 配置部分信任 198

8.3 理解策略文件 199

8.3.1 策略文件的内容 199

8.3.2 策略程序集 201

8.3.3 命名权限集 201

8.3.4 代码组 202

8.3.5 修改策略文件 203

8.3.6 自定义策略 204

8.4 堆栈审核 205

8.4.1 修改堆栈审核 205

8.4.2 堆栈修改实例介绍 206

8.5 SecurityException的作用 207

8.6 锁定ASP.NET配置 211

8.7 在部分受信任的代码中调用程序集 212

8.7.1 通过部分受信任的代码使用库 212

8.7.2 何时启用部分受信任的调用方 213

8.7.3 通过部分受信任的代码访问共享库 213

8.7.4 对APTCA程序集中的某些类型要求完全信任 214

8.7.5 标有APTCA的.NET Framework程序集 215

8.7.6 如何:让部分受信任的代码无法访问APTCA程序集 215

8.7.7 从程序集中移除部分信任 216

8.8 小结 216

第9章 ASP.NET Web服务安全机制 217

9.1 Web服务体系结构 217

9.1.1 Web服务分层架构 217

9.1.2 Web服务堆栈 218

9.2 Web服务安全模型 218

9.2.1 平台级安全性 218

9.2.2 应用程序级安全性 219

9.2.3 消息级安全性 220

9.3 Web服务身份验证和授权策略 221

9.3.1 带模拟功能的Windows身份验证 221

9.3.2 不带模拟功能的Windows身份验证 222

9.3.3 使用固定标识的Windows身份验证 224

9.3.4 实现Web服务的Windows身份验证配置 224

9.3.5 自定义SOAP身份验证 229

9.3.6 用于授权的基于角色的安全 233

9.4 Web服务加密方法 236

9.4.1 SSL加密 236

9.4.2 SOAP加密 241

9.4.3 XML签名与加密技术 246

9.5 Web服务配置安全策略 251

9.5.1 配置IIS设置 252

9.5.2 配置ASP.NET设置 253

9.5.3 保护资源安全 253

9.5.4 禁用HTTP-GET、HTTP-POST 253

9.6 Web服务安全通信 254

9.6.1 传输级安全通信 254

9.6.2 消息级安全通信 255

9.7 小结 256

第10章 .NET Remoting安全机制 257

10.1 .NET Remoting体系结构 257

10.1.1 .NET Remoting简介 258

10.1.2 .NET Remoting接收 266

10.1.3 ASP.NET和HTTP通道 269

10.1.4 .NET Remoting网关守卫 270

10.2 .NET Remoting的身份验证与授权 271

10.2.1 将身份验证驻留在ASP.NET中 271

10.2.2 将身份验证驻留在Windows服务中 272

10.2.3 自定义.NET Remoting身份验证 272

10.2.4 授权 272

10.2.5 身份验证和授权策略 273

10.2.6 将身份验证的凭据传递给远程对象 274

10.2.7 传递原调用方 276

10.3 .NET Remoting资源访问控制 278

10.3.1 系统资源访问控制 278

10.3.2 网络资源访问访问 278

10.4 受信任的子系统模型 279

10.5 .NET Remoting安全通信 281

10.6 选择.NET Remoting的主机进程 281

10.6.1 驻留在ASP.NET中 282

10.6.2 驻留在Windows服务中 282

10.6.3 驻留在控制台应用程序中 283

10.7 .NET Remoting与Web服务安全性比较 283

10.8 小结 284

第11章 数据库访问安全机制 285

11.1 数据库访问威胁与对策 285

11.1.1 SQL注入 286

11.1.2 配置数据的泄漏 287

11.1.3 敏感应用程序数据的泄漏 287

11.1.4 数据库架构和连接详细信息的泄漏 288

11.1.5 未授权访问 288

11.1.6 网络侦听 289

11.2 数据库访问编码设计注意事项 289

11.3 输入验证 291

11.4 SQL注入 291

11.5 数据访问身份验证 293

11.5.1 使用Windows身份验证 294

11.5.2 保护SQL身份验证的凭据 294

11.5.3 使用最低特权账户连接 294

11.6 数据访问授权 295

11.6.1 限制未授权的调用方 296

11.6.2 限制未授权的代码 297

11.6.3 在数据库中限制应用程序 297

11.7 数据访问配置管理 297

11.7.1 使用Windows身份验证 298

11.7.2 保护应用程序的连接字符串 298

11.7.3 用受限的ACL保护UDL文件 299

11.8 保护敏感数据 299

11.8.1 对存储的敏感数据加密 299

11.8.2 保护跨网络传输的敏感数据 300

11.8.3 存储带salt值的密码散列值 300

11.9 数据访问异常管理 301

11.9.1 捕获和记录ADO.NET异常 301

11.9.2 确保关闭数据库连接 304

11.9.3 在ASP.NET应用程序中使用一般性错误页 304

11.10 构建安全的数据访问组件 305

11.11 代码访问安全性注意事项 307

11.12 数据库服务器部署注意事项 307

11.13 SQL Server安全性支持 308

11.13.1 SQL Server安全性概述 309

11.13.2 SQL Server中的身份验证 310

11.13.3 SQL Server中的服务器和数据库角色 311

11.13.4 SQL Server中的所有权和用户架构分离 312

11.13.5 SQL Server中的授权和权限 314

11.13.6 SQL Server中的数据加密 315

11.13.7 SQL Server中的CLR集成安全性 316

11.14 保证ADO.NET的安全 316

11.14.1 ADO.NET的安全性概述 316

11.14.2 ADO.NET安全数据访问 318

11.14.3 ADO.NET安全客户端应用程序 319

11.14.4 代码访问安全性和ADO.NET 320

11.14.5 ADO.NET的隐私和数据安全 323

11.15 小结 324

第12章 ASP.NET的日志和监测机制 325

12.1 错误处理 325

12.1.1 了解401非授权错误 325

12.1.2 错误处理 327

12.1.3 错误处理程序的完整示例 329

12.2 日志和监测 337

12.2.1 事件日志 337

12.2.2 性能监视器 345

12.2.3 电子邮件 345

12.2.4 ASP.NET跟踪 345

12.2.5 日志和部分信任 348

12.3 健康监测系统 349

12.3.1 创建自定义监视事件 349

12.3.2 配置健康检测 353

12.3.3 SQL服务器提供程序 357

12.3.4 WMI提供程序 359

12.3.5 电子邮件提供程序 363

12.3.6 缓冲事件提供程序 367

12.3.7 事件日志提供程序 372

12.3.8 编写自定义提供程序 373

12.3.9 状态监视和部分信任 376

12.4 小结 382

第13章 构建安全的ASP.NET应用程序 383

13.1 总指导原则 383

13.2 操作系统强化 384

13.2.1 自动更新 385

13.2.2 禁用服务和协议 385

13.2.3 包过滤 388

13.2.4 保护Windows文件共享 389

13.2.5 审核 394

13.3 数据库服务器强化 394

13.3.1 修补程序和更新程序 394

13.3.2 服务 395

13.3.3 协议 396

13.3.4 账户 397

13.3.5 文件和目录 399

13.3.6 共享 400

13.3.7 端口 400

13.3.8 注册表 401

13.3.9 审核和日志 402

13.4 Web服务器强化 402

13.4.1 应用程序池 402

13.4.2 Web服务扩展 404

13.4.3 Web内容 407

13.4.4 HTTP头 407

13.4.5 日志 407

13.4.6 URLScan 408

13.4.7 访问控制列表 408

13.4.8 启用SSL 408

13.4.9 验证方法 408

13.5 ASP.NET强化 409

13.5.1 配置锁死 409

13.5.2 推荐设置 409

13.5.3 预编译 409

13.6 小结 410

第14章 综合案例 411

14.1 案例前言 411

14.2 系统总体设计 411

14.2.1 系统需求分析 411

14.2.2 系统安全框架设计 413

14.2.3 系统功能设计 414

14.2.4 模块功能划分 415

14.3 数据库设计 416

14.3.1 数据库分析与设计 416

14.3.2 数据表的创建 418

14.3.3 数据库表关系图设计 424

14.4 系统实现 425

14.4.1 系统整体实现 425

14.4.2 系统身份验证 440

14.4.3 数据加密 444

14.4.4 输入验证 445

14.4.5 系统异常处理 450

14.5 系统部署安全考虑 450

14.5.1 配置服务器操作系统安全 451

14.5.2 配置服务器防火墙 457

14.6 小结 458