出版社:人民邮电出版社
年代:2009
定价:42.0
本书基于.net平台进行创作,按照安全问题的分类结合ASP.NET自身的特点深度解析设计方法和代码来龙去脉,帮助读者进入构建安全代码的新境界。
第1章 Web应用程序安全概述 1
事情总有两面性,Web应用程序在带给我们便利的同时,也带来了风险和问题,如何预防?如何控制?让我们从头细说
1.1 Web应用程序的安全性 1
追根溯源,总览应用程序的安全性
1.1.1 代码访问安全性 3
1.1.2 基于角色的安全性 8
Web应用系统安全是一个整体,不该将其各部分分裂来看,明确.NET安全技术各个部分如何相互协作,应用系统整体安全将受益匪浅
1.2 Web应用系统安全模型 11
1.3 .NET安全类库 15
全面地介绍安全API参考,涉及.NET框架基础类库中与安全有关的命名空间
1.3.1 安全类库的内部关系 16
1.3.2 System.Security 16
1.3.3 System.Security.Cryptography 18
1.3.4 System.Security.Principal 19
1.3.5 System.Security.Policy 21
1.3.6 System.Security.Permissions 23
1.3.7 System.Web.Security 25
第2章 ASP.NET的安全控件 27
“工欲善其事,必先利其器”,能够开发出安全的Web应用程序,安全控件功不可没
2.1 登录控件 27
2.2 登录状态控件 29
2.3 密码维护控件 30
2.4 创建用户向导控件 33
2.5 页面访问控件 35
第3章 Web应用系统的数据加密 37
数据加密永远是Web应用系统中最需要关注的部分,我们不仅介绍了流行的加密方法,还为开发人员提供了编程参考
3.1 数据安全威胁 37
3.2 哈希加密算法 37
3.3 Windows API加密方法 43
3.4 配置信息加密方法 50
3.4.1 DpapiProtectedConfiguration Provider类 52
3.4.2 RsaProtectedConfiguration Provider类 56
3.5 保护视图数据 60
视图状态中的数据总是让黑客们垂涎三尺,但“道高一尺,魔高一丈”,在视图中进行数据传输的同时,地下秘密保护工作也在积极进行
3.5.1 开启视图保护开关 62
3.5.2 加密视图信息 64
3.5.3 用户独立视图 66
3.6 通过密钥进行数据加密 67
.NET安全命名空间Cryptography下的3种加密方法
3.6.1 对称加密算法 68
3.6.2 非对称加密算法 72
3.6.3 证书加密 75
第4章 数据库安全通信 80
以SQL注入为典型代表的攻击让数据库脆弱不堪,当今很多黑客攻击和数据丢失事件都是从数据库切入的,进行安全的数据库连接对于保证数据库正常运行尤为重要
4.1 SQL注入攻击 80
SQL注入攻击是一种常见的Web应用程序的安全漏洞,注入二字形象地描述了黑客攻击性行为特点,攻击理由也非常简单:数据库是系统数据的大本营。我们所要做的,首先就是保证后方安全
4.1.1 攻击原理 81
4.1.2 攻击方式 81
4.1.3 防范方法 82
4.2 注入攻击实例 83
4.3 防止注入攻击 89
4.4 安全数据库连接 90
开发人员为了数据库的连接安全真是绞尽脑汁,验证、授权和加密都是其中的常见方法
4.4.1 数据库身份验证 92
4.4.2 数据库授权 93
4.4.3 数据库安全配置 95
4.4.4 数据库加密 96
4.4.5 数据库反馈信息保护 99
4.4.6 LINQ技术 102
4.4.7 数据库安全部署 104
第5章 数据验证 107
数据在传输过程中不仅要进行加密,还要进行有效性的验证,主要为了避免输入中发生低级错误,切莫“一失足成千古恨”
5.1 数据验证概述 107
5.2 数据验证方式 112
我们天天输入的数据不一定正确或格式良好,它们可能成为应用系统的安全漏洞,这并不是危言耸听。应用系统不对数据进行验证,后果很严重
5.2.1 图片和附加码数据验证 112
5.2.2 Web表单数据验证 115
5.2.3 Web窗体数据验证 116
5.3 数据审核 125
5.4 数据过滤 128
第6章 身份验证技术 133
用户名和密码是通常意义上最简单的身份验证,角色验证、IIS和活动目录在这个领域一直是配合默契的亲密战友
6.1 用管道技术加固验证功能 133
从用户在地址栏敲入键接地址到页面呈现在眼前的0.1秒之内,IIS和.NET框架做了大量的幕后工作,而管道就是在过程中进行衔接的桥梁
6.1.1 安全HTTP请求处理流程 134
6.1.2 安全HTTP管道 136
6.1.3 安全HTTP Modules 139
6.2 基于角色的安全认证 141
安全认证在整个Web应用程序的安全体系中扮演着重要的角色,而它肩上所担负的安全责任也是不可推卸的
6.2.1 IIS和ASP.NET用户认证流程 142
6.2.2 认证 143
6.2.3 授权 143
6.2.4 ASP.NET用户认证 143
6.2.5 使用ASP.NET管理工具添加
用户 146
6.2.6 ASP.NET角色管理系统 148
6.2.7 使用Membership/Role API添加用户 153
6.2.8 ASP.NET的MemberShip Provider 161
6.2.9 实现自定义的Membership Provider类 164
6.2.10 基于角色的站点导航 169
6.3 窗体验证 172
6.4 操作系统集成验证 176
Windows身份验证一般并不单独行动,配合IIS和活动目录方能发挥其巨大潜力
6.4.1 基于IIS的Windows身份验证 177
6.4.2 基于活动目录的Windows身份验证 181
6.5 文件授权 189
第7章 构建安全的组件 191
系统是由一个个组件组成的,组件是否安全决定了整个系统的安全程度,从组建所面临的威胁入手,积极应对,做到“兵来将挡,水来土掩”
7.1 组件面临的威胁 191
7.2 安全的服务组件设计 192
7.3 组件的安全身份验证 193
7.4 组件中的敏感数据 196
7.5 组件安全审核和日志记录 196
7.6 安全组件构建实例 197
7.7 安全组件的部署 201
7.8 组件强签名与反编译 203
7.9 安全的I/O文件操作 204
7.10 安全操作注册表 212
7.11 序列化代码安全 214
7.12 安全的多线程访问 214
第8章 加固会话安全 217
会话的安全对于加固整个Web应用系统来说不可或缺,会话中携带重要数据,必须防止客户与服务器建立的会话被黑客截取和探查
8.1 安全会话概述 217
8.2 保护会话状态 221
8.3 创建安全会话 222
8.4 基于HTTPS的自定义绑定会话 224
8.5 在会话中使用令牌 226
8.6 保护会话中的数据 228
8.7 会话参数 229
8.8 会话的存储安全 230
第9章 安全日志 234
安全日志记录了系统中出现的异常错误信息,设计有效而安全的日志是保证异常的捕获和处理的最佳途径
9.1 错误异常 234
9.2 错误异常的作用 234
9.2.1 错误异常处理机制 235
9.2.2 错误异常组成 235
9.3 异常处理程序的设计 235
设计涵盖了异常处理的全生命周期,从引发到消亡,缺一不可
9.3.1 错误异常的引发 235
9.3.2 错误异常的处理 242
9.3.3 错误异常的捕获 245
9.3.4 设计自定义错误异常 246
9.3.5 错误异常的性能 247
9.3.6 显示安全的错误信息 248
9.4 保护ASP.NET日志 251
全球最强日志组件Log4net
9.4.1 Web系统安全监控 251
9.4.2 记录错误信息 252
9.4.3 使用顶级日志组件 255
9.4.4 安全事件 261
第10章 代码信任技术 267
代码信任按照访问权限进行分级,设置合适的代码信任级别,保证应用程序顺利访问和执行
10.1 代码信任技术概述 267
10.2 资源访问安全 267
10.3 完全信任和部分信任 268
10.4 代码访问安全配置 269
10.5 ASP.NET策略文件 270
10.6 ASP.NET安全策略 271
10.7 开发部分信任Web应用程序 273
10.8 部分信任级的配置方法 274
10.9 部分信任的Web应用程序处理策略 275
10.10 自定义策略 276
10.11 沙箱保护策略 276
10.12 中度信任程序 278
10.13 中度信任的限制 278
第11章 Web服务器安全设置 281
不管代码安全技术多么完善,忽略服务器安全将使得安全防范体系功亏一篑。现在流行的IIS 6.0和IIS 7.0服务器软件的安全设置就是我们要学习的重点
11.1 配置安全的操作系统 281
11.2 安全配置IIS 6.0 284
11.3 使用IIS 6.0 287
11.4 IIS 7.0安全设置 289
IIS 7.0是目前最流行的主流Web服务器软件,这里要注意其相对于IIS 6.0的改进
11.4.1 角色设置 291
11.4.2 页面和控件设置 292
11.4.3 监控Web系统安全 295
11.4.4 安全密钥配置 299
11.4.5 安全日志配置 302
第12章 代码安全性测试工具 306
测试一直是检验代码准确性的必要方式,也是审核的第一关,代码安全性测试也不例外
12.1 监控系统HTTP流 306
12.2 黑盒安全检测 313
12.3 检测代码漏洞工具 316
12.4 数据库漏洞检测工具 323
第13章 .NET安全审核模板 326
有了技术和计划,就可以进入执行和审查环节,.NET安全审核不止起到亡羊补牢的作用,更是对安全开发进行评审,保证Web程序安全的重要壁垒
《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》作者总结了多年项目实施和管理经验,在此基础上加以提炼,试图用最简明易懂的方式介绍.NET框架下的安全问题以及应对措施。《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》内容涉及Web应用程序安全、代码安全、数据库安全通信、数据验证、身份验证、组件安全、会话安全以及安全日志的设计等,并用典型实例作为引导,介绍各种安全类库和安全编程,带领读者进入神秘而妙不可言的.NET安全世界。随着Web应用程序日益广泛的应用,基于Web环境的安全性也越来越成为人们关注的问题,.NET框架的安全性给使用.NET平台编程的所有开发人员和用户带来了解决安全问题的福音。
《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》适合.NET平台下的开发人员、项目经理及系统管理人员阅读。
黑客入侵、挂马、网页篡改……网络系统安全的种种问题令人困扰,是否有方法能彻底解决这些安全问题呢……《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》为你解决。
(美) 杰里米, (美) 塞迪克, 著
(美) 鲁比 (Ruby,S.) , (美) 托马斯 (Thomas,D.) , (美) 汉森 (Hansson,D.H.) , 著
(美) 托马斯 (Thomas,D.) , (美) 汉松 (Hansson,D.H.) , 著
(美) 奥尔索普 (Allsopp,J.) , 著
刘杰, 著
(美) 卡尔巴赫 (Kalbach,J.) , 著
丁振凡, 编著
(美) 赛巴斯塔 (Sebesta,R.W.) , 著
(美) 斯科特 (Scott,B.) , (美) 尼尔 (Neil,T.) , 著