《ASP.NET安全性高级编程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:Russ Basiura,Richard Conway等著;王晓娜,黄开枝译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302064938
  • 页数:420 页
图书介绍:由于Internet的普及,安全问题被越来越多的人关注,本书主要探讨各种安全攻击类型以及相应的ASP.NET安全对策。

第1章 创建安全的Web应用程序 1

1.1 “安全性”的含义 1

1.1.1 “安全”的含义 1

1.1.2 安全的其他定义 3

1.2 重视安全性的原因 4

1.2.1 Web应用程序——一把双刃剑 4

1.2.2 相关法律 4

1.2.3 对Web应用程序的攻击方式 5

1.2.4 每个人迟早都会遭受攻击 9

1.2.5 安全并不仅仅是拦贼于门外 10

1.3 安全由谁来负责 10

1.3.1 ASP.NET开发人员力所不及的安全问题 11

1.3.2 ASP.NET开发人员的职责 12

1.4 一些安全建议 18

1.4.1 没有百分之百的安全 18

1.4.2 隐藏起来并不能保证安全 18

1.4.3 应用程序安全性由它最薄弱的环节决定 19

1.4.4 安全问题在开发过程的每一阶段都很重要 20

1.4.5 安全领域有做不完的工作 20

1.4.6 过分限制的安全不利于产品开发 21

1.4.7 安全并不只是技术问题 21

1.4.8 维护安全不能依赖用户 22

1.5 小结 22

第2章 认真对待客户 24

2.1 攻击手段 25

2.1.1 脚本注入 25

2.1.2 跨站点脚本攻击 28

2.1.3 SQL注入 32

2.1.4 SQL Union攻击 33

2.1.5 更多的高级攻击 35

2.1.6 验证、编码和筛选用户输入 36

2.1.7 预防SQL注入攻击 45

2.1.8 隐藏窗体字段 47

2.1.9 Cookies 48

2.1.10 Http Referrer 49

2.1.11 URL 51

2.1.12 视图状态 57

2.2 防止信息泄漏 58

2.2.1 控制错误信息 60

2.2.2 禁用调试和跟踪 60

2.3 小结 61

第3章 存储秘密 63

3.1 存储方式 63

3.1.1 将秘密存储到页面中 63

3.1.2 将秘密存储到后台编码文件中 64

3.1.3 将秘密存储到.config文件中 65

3.1.4 将秘密存储到受保护的.config文件中 65

3.1.5 将秘密存储到内存中 67

3.1.6 使用散列技术存储秘密 68

3.2 小结 70

3.1.7 使用Data Protection API存储秘密 70

第4章 保护数据库访问权 71

4.1 保护措施 71

4.1.1 数据库账户 71

4.1.2 限制到数据库的连接 72

4.1.3 将秘密存储到.NET组件中 72

4.1.4 COM+对象构造 74

4.1.5 使用受信任的连接 78

4.1.6 使用存储过程控制数据库访问 79

4.2 小结 82

第5章 实现密码策略 83

5.1 密码策略 83

5.1.1 如何创建安全密码 83

5.1.2 密码的最小长度 83

5.1.3 混合大小写的密码 85

5.1.4 数字和符号 86

5.1.5 对新密码运行字典检查 88

5.1.6 密码更新 94

5.1.7 为用户选择随机密码 96

5.1.8 帮助忘记密码的用户 96

5.2 防止蛮力攻击 97

5.3 小结 97

第6章 ASP.NET安全架构 99

6.1 ASP.NET安全过程 100

6.1.1 身份验证 100

6.1.2 授权 101

6.1.3 假冒 101

6.1.4 综合运用所有功能 102

6.2 如何实现NET安全 104

6.2.1 表示安全上下文 104

6.2.2 表示用户标识 106

6.2.3 ASP.NET页面请求中出现的安全事件 109

6.2.4 内置的身份验证模块 110

6.2.5 内置的授权模块 112

6.3 小结 113

第7章 Windows身份验证 115

7.1 使用Windows身份验证的原因 115

7.2 Windows身份验证的工作方式 116

7.2.1 基本身份验证 116

7.2.2 摘要身份验证 119

7.2.3 集成Windows身份验证 121

7.3 ASP.NET Windows身份验证API 122

7.3.1 WindowsAuthenticationModule类 122

7.3.2 WindowsPrincipal类 123

7.3.3 WindowsIdentity类 123

7.4 实现Windows身份验证 124

7.4.1 配置IIS以执行身份验证 124

7.4.2 配置ASP.NET以使用Windows身份验证 125

7.4.3 访问ASP.NET中的Windows用户信息 125

7.4.4 自定义Windows身份验证 127

7.5 小结 129

第8章 .NET Passport 130

8.1 使用Passport身份验证的原因 131

8.2 .NET Passport的工作原理 132

8.3 实现.NET Passport 133

8.3.1 实现.NET Passport前的准备 134

8.3.2 注册.NET Passport应用程序 134

8.3.3 Passport管理实用程序 137

8.4 Passport SDK COM对象 137

8.5 .NET Passport类 139

8.5.1 .NET Passport登录 141

8.5.2 处理Passport Cookies 142

8.6 为Passport身份验证配置ASP.NET 144

8.7 获取配置文件数据 145

8.8 自定义Passport身份验证 147

8.9 利用Passport加密和压缩 148

8.9.1 加密 149

8.9.2 压缩 149

8.10 P3P 150

8.9.3 多个密钥 150

8.11 .NET Passport的前景 151

8.12 小结 153

8.13 相关链接 153

第9章 窗体身份验证 154

9.1 使用窗体身份验证的原因 154

9.1.1 不使用窗体身份验证的原因 155

9.1.2 不用亲自实现Cookie身份验证 157

9.2 窗体身份验证的工作原理 158

9.3 窗体身份验证API 158

9.3.1 FormsAuthenticationModule HTTP模块 159

9.3.2 FormsAuthentication类 159

9.3.3 FormsIdentity类 160

9.3.4 FormsAuthenticationTicket类 161

9.4 实现窗体身份验证 162

9.4.1 重点关注SSL 162

9.4.2 配置窗体身份验证 163

9.4.3 设置登录页面 166

9.4.4 为存储器散列密码 176

9.4.5 保留身份验证Cookie 180

9.4.6 使用其他的凭证存储器 182

9.5 小结 196

第10章 扩充窗体身份验证 197

10.1 在多个服务器上使用窗体身份验证 197

10.1.1 在非Web Farm中使用这些方法 199

10.1.2 随机生成机器密钥 204

10.2 不带Cookies的窗体身份验证 207

10.3 保护.aspx页面及其内容 213

10.3.1 性能问题 215

10.3.2 与文件类型有关的问题 215

10.4 向身份验证票证添加附加信息 217

10.5 构建窗体身份验证以支持基于角色的授权 221

10.6 防止Cookie被盗 227

10.7 保存登录用户列表 230

10.8 提供多个登录页面 235

10.9 小结 239

第11章 自定义的身份验证 240

11.1 使用自定义身份验证的原因 240

11.1.1 为自定义身份验证配置ASP.NET 241

11.1.2 处理AuthenticateRequest事件 242

11.1.3 创建我们自己的主体和标识 247

11.1.4 在运行阶段附加到自定义的Principal对象 252

11.2 电话银行案例分析 255

11.2.1 将BeVocal Café作为服务提供商 260

11.2.2 SQL Server用户/账户数据库 261

11.3 小结 282

第12章 实现授权 283

12.1 角色 283

12.2 主体和标识 284

12.2.1 标识 284

12.3 基于角色的安全 285

12.2.2 主体 285

12.4 ASP.NET授权 287

12.5 文件授权 287

12.6 URL授权 290

12.7 权限的计算 293

12.8 代码中的授权检查 294

12.8.1 PrincipalPermission对象 297

12.8.3 PrincipalPermissionAttribute类 298

12.8.2 合并PrincipalPermission对象 298

12.9 自定义授权 299

12.10 CustomHttpModule 300

12.11 处理Global.asax中的AuthorizeRequest 302

12.12 在Web.config中添加CustomModule 303

12.12.1 授权失败 304

12.12.2 自定义授权示例 304

12.13 小结 308

第13章 代码访问安全 309

13.1 代码访问安全概述 310

13.2 代码访问安全的基本知识 312

13.2.1 获得程序集标识 312

13.2.2 为程序集分配权限 312

13.2.3 访问控制 314

13.3 证据 315

13.3.1 应用程序、域和程序集证据 316

13.3.2 自定义证据 317

13.4 代码访问安全权限 318

13.3.3 运行库主机 318

13.4.1 自定义权限类 321

13.4.2 标识权限 322

13.5 代码访问安全策略 323

13.5.1 权限集和代码组 324

13.5.2 内置的权限集 325

13.5.3 策略结构 327

13.5.4 策略结构对象模型 327

13.5.5 使用策略评估 328

13.5.6 定制安全策略 332

13.5.7 使用自定义证据和权限 333

13.6 代码访问安全和ASP.NET应用程序 334

13.7 代码访问安全限制 335

13.8 安全请求 336

13.9 安全需求 338

13.9.1 运行时需求 339

13.9.2 加载时安全需求 343

13.10 真实示例 344

13.10.1 解决方案的运作方式 345

13.10.2 安装指令 348

13.11 小结 348

第14章 Web服务安全 350

14.1 Web服务身份验证 350

14.1.1 在Web服务中实现身份验证 351

14.1.2 自定义SOAP身份验证 359

14.2.1 SSL 364

14.2 Web服务加密方法 364

14.2.2 SOAP 365

14.3 用于授权的基于角色的安全 370

14.4 新生技术 371

14.4.1 WS-Security 371

14.4.2 XML-签名 371

14.4.3 XML加密 372

14.6 安全确认标记语言 373

14.5 XML密钥管理规范 373

14.7 小结 374

第15章 假冒 375

15.1 需要假冒的原因 375

15.2 针对Windows 2000用户的重要注释 376

15.3 配置假冒 376

15.4 临时假冒用户 377

15.4.1 获取令牌 378

15.4.2 执行假冒 379

15.5 小结 383

附录A IIS安全性配置 384

A.1 安全性和服务器的基础结构 384

A.2 计划的安全性 385

A.3 保护IIS 386

A.3.1 设置Access Control List 387

A.3.2 禁用父路径浏览 389

A.3.3 删除IIS示例 389

A.3.4 禁用不用的COM组件 390

A.3.5 启用日志记录 390

A.3.6 安装防毒软件 391

A.4 Microsoft Data Access Component的安全性 392

A.5 锁定IIS 392

A.5.1 服务器模板 393

A.5.2 Internet服务 393

A.5.3 脚本映射 394

A.5.5 UrlScan 395

A.5.4 附加安全设置 395

A.5.6 最后的要点 397

A.6 保护Telnet 397

A.7 小结 397

附录B ASP.NET安全性配置 399

B.1 保护Windows 399

B.2 设置Windows安全性 404

B.3 URL授权 407

B.4.1 ASPNET账户权限 408

B.4 ASPNET账户 408

B.4.2 ASPNET账户限制 409

B.5 在System账户下运行 411

B.6 设置假冒 411

B.6.1 通过IIS假冒 412

B.6.2 通过身份验证假冒 415

B.6.3 通过指定的用户账户假冒 415

B.6.4 在部分代码中假冒 417

B.7 小结 419