科技>计算机>编程语言
精通ASP.NET3.5网络编程之安全策略(含VCD光盘1张)

精通ASP.NET3.5网络编程之安全策略(含VCD光盘1张)"

作者:陆昌辉
ISBN:9787121112584
定价:¥55.0
字数:755千字
页数:472
出版时间:2010-08
开本:16(185*260)
版次:01-01
装帧:
出版社:电子工业出版社
简介

当运用ASP.NET来开发网站或是企业项目系统时,安全性已成为了首要的问题。本书将介绍如何在快速高效的ASP.NET 3.5网络应用开发中,制定最出色的安全策略,让开发的成果具有最佳的安全性。本书囊括了进行ASP.NET 3.5网络编程开发中用到的各种主要安全策略,共分14章,主要内容包括:ASP.NET及其工作原理、Web安全基础、ASP.NET应用程序的安全架构ASP.NET中的输入验证、ASP.NET中的存储加密技术、ASP.NET的身份验证和授权机制、ASP.NET代码访问安全策略、部分信任的ASP.NET应用程序、ASP.ENT Web服务安全机制、.NET Remoting安全机制、数据库访问安全机制、ASP.NET的日志和监测机制,如何构建安全的ASP.NET应用程序以及一个ASP.NET安全技术的综合应用实例。 本书通过大量的实例,由浅入深地介绍了如何利用ASP.NET 3.5开发安全的网络应用程序的相关知识。全书内容精炼、重点突出、实例丰富,是从事网络应用开发与管理人员的必备参考书,同时也非常适合大、中专院校相关专业的师生阅读。

前言

随着Web应用程序的广泛应用,其安全问题正变得越来越重要。如果我们不能加倍关注如何构建和维护一个Web应用程序的安全,那么即使最简单的Web应用程序也会因为安全问题带给我们很多意想不到的麻烦。只有理解和使用我们所拥有的安全特性,并理解对安全的威胁,我们才能设计出相对安全的Web应用程序,使危及它们安全的可能性降至最小。 最近,频频传出网站遭受黑客攻击的消息,导致信息的泄露和网站内容的恶意乱搞,因此无论怎样夸大保障Web应用程序安全的重要性都不为过。对一个公司来说,安全漏洞将会造成非常严重的后果:不仅黑客可能破坏或者干扰我们的应用程序的正常运行,而且更严重的是导致机密数据的泄露。 在某些方面,保障Internet上Web应用程序的安全变得越来越复杂,因为它并没有达到人们当初设计Internet的初衷。而Internet的设计意图是使我们能够向其他人发布信息以及有效的共享信息。现在很多政府部门、金融机构和商业等都在使用Web应用程序处理相关事务。因此,开发人员和系统管理员应该承担保障一个应用程序的安全的责任。 Microsoft利用许多复杂的安全特性(例如代码访问安全性和基于角色的安全性)设计了ASP.NET和.NET Framework,并且利用这些安全特性作为保障安全的关键组成部分。也就是说,开发人员和系统管理员都要负责保护Web应用程序的安全。如何有效地运用ASP.NET和.NET Framework的安全特性,那么我们需要掌握它们的工作方式,了解Web安全问题及其相应的对策。 简而言之,保障ASP.NET应用程序安全有两个关键方面。系统管理员的责任是:构建安全的Web应用程序运行环境。包括安装和配置代理服务器、配置IIS、关闭隐患端口和不必要服务等。当然,开发人员也需要详尽了解Web程序的运行环境,但是他们的重点是:如何实现一个Web应用程序内部的安全特性。这是保障ASP.NET 应用程序安全的第二个方面,并且包括实现身份验证、访问授权、代码访问安全性等等。就以上两个关键方面的责任本书都做了详细的探讨。 本书主要内容 在本书中,我们明确和全面研究了ASP.NET开发人员所关心的安全问题的各个方面。在开发ASP.NET时,我们可以利用.NET Framework提供的复杂环境,来保障应用程序的安全。 本书的第1~3章,主要介绍了ASP.NET应用程序的基础知识,Web应用程序的安全简介以及ASP.NET的安全体系结构,通过这3章读者可以对ASP.NET Web应用程序的安全问题有个整体的认识。 本书的第4~11章,主要对ASP.NET的输入验证技术、存储加密技术、身份验证和访问授权机制、代码安全访问策略、ASP.NET Web服务的安全策略、.NET Remoting安全机制以及数据库访问安全机制做了详细介绍。 第12章主要介绍ASP.NET的日志和监测机制,通过ASP.NET的日志和监测机制可以使开发人员开发出更加健壮和易于维护的Web应用程序。 第13章主要从总体指导原则、操作系统、数据库、Web以及ASP.NET等5个方面进行讲解,介绍如何构建安全的ASP.NET应用程序,起到了提纲挈领的作用。 第14章通过一个综合案例的开发,介绍了如何使用前面章节中涉及到的某些安全技术来构建安全的ASP.NET应用程序。 学习本书的条件 要运行本书中的示例,您必须具备:  ● 一个合适的操作系统:Windows Server 2003或者Windows XP Professional Edition及以上操作系统  ● .NET Framework 3.5  ● 本书中的一些示例需要SQL Server 2005或者MSDN  ● 有利的开发工具:Visual Stadio 2008  ● 本书中的所有程序的源代码可在http://www.tqxbook.com.cn的资源下载链接中下载 本书适应读者 本书面向所有准备学习或正在学习与开发ASP.NET Web应用程序的读者,如果您想开发出一个健壮的ASP.NET程序,那么本书将是一本难得的参考资料。 联系作者 本书由陆昌辉、丁健、王龙飞等编著,此外参加编写的人员还有李东晖、陈天霞、封朋成、文龙、唐晨光、黄科、杭志、胡勇辉、许宾、兰湘涛、王石罗、倪文志。 本书内容涵盖面广而深,尽管我们尽了我们最大的努力将错误降到最低,旦难免会存在错误和疏漏的地方,为此读者可以通过邮箱dj_csut@163.com和Guopengfei@phei.com.cn提交bug信息和对本书的修改建议。我们真诚希望能够得到广大读者的反馈信息,我们将认真阅读所有的E-mail,并给予细致的回复,我们将不甚感激。 编 者 2010年3月

目录

第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 安装.NET Framework 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 DP API使用实例 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.ENT 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

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个