首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化

2010-02-09 
基本信息·出版社:人民邮电出版社 ·页码:338 页 ·出版日期:2009年10月 ·ISBN:7115211965/9787115211965 ·条形码:9787115211965 ·版本:第1版 · ...
商家名称 信用等级 购买信息 订购本书
Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化 去商家看看
Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化 去商家看看

 Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化


基本信息·出版社:人民邮电出版社
·页码:338 页
·出版日期:2009年10月
·ISBN:7115211965/9787115211965
·条形码:9787115211965
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文

内容简介 《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》作者总结了多年项目实施和管理经验,在此基础上加以提炼,试图用最简明易懂的方式介绍.NET框架下的安全问题以及应对措施。《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》内容涉及Web应用程序安全、代码安全、数据库安全通信、数据验证、身份验证、组件安全、会话安全以及安全日志的设计等,并用典型实例作为引导,介绍各种安全类库和安全编程,带领读者进入神秘而妙不可言的.NET安全世界。随着Web应用程序日益广泛的应用,基于Web环境的安全性也越来越成为人们关注的问题,.NET框架的安全性给使用.NET平台编程的所有开发人员和用户带来了解决安全问题的福音。
《Web安全设计之道:.NET代码安全、界面漏洞防范与程序优化》适合.NET平台下的开发人员、项目经理及系统管理人员阅读。
作者简介 杨云,微软指定培训中心讲师.微软最有价值专家(Microsoft MVP).长期从事微软ASP.NE7技术培训,为微软新闻组和多家报纸杂志撰写文章。
参加多项大型微软.NET项目,如企业级应用系统开发,电信系统开发,政府办公自动化架构等。主要研究方向是ASP.NET安全部署技术、设计模式。
刘君,东北大学计算机系统研究所。与多家权威评测和咨询机构合作,参加企业CMMI、ISO 20000和IS027001的咨询和评估工作。在过程改进、质量保证、信息安全和服务管理领域具有丰富的经验。
媒体推荐 互联网上黑与白的较量已经持续了多年,双方都在不断地博弈。目前病毒的发展方向已经从普通桌面软件转移到了网站上,这些黑客利用网站本身的各类漏洞植入非法脚本甚至木马程序。提高网站自身的安全性是当务之急,是网络程序员务必要思考的问题。这本书教会了大家如何开发出高质量的安全网站,值得推荐!
  ——瑞星西南分公司首席网络安全顾问 顾明凯
我觉得系统安全的本质就是意识和技术不断学习提高的过程。这本书叙述清晰,语言简练,把安全技术讲解得朴实无华,实在是一本不可多得的安全力作.
  ——上海交通大学计算机网络安全博士 张涛
这本书很实用,内容很经典,是安全编码技术方面一本难得的好书。年轻时如果有这样一本书,也许我会少走不少弯路。
  ——前淘宝及支付宝(中国)网络安全工程师 刘明德
安全问题,我想现在上到政府机关,下到中小公司,没人敢不重视吧?这本书,我觉得使用.NET技术的人员,应该人手一册。
  ——中国杀毒网安全顾问 张庆生
编辑推荐 黑客入侵、挂马、网页篡改……网络系统安全的种种问题令人困扰,是否有方法能彻底解决这些安全问题呢……《Web安全设计之道:.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程序安全的重要壁垒
……
序言 .NET框架是微软公司为了满足广大用户的需求而开发的一种通用平台,它带给我们方便、快捷的应用服务。但是在实际环境中,网络入侵和安全隐患也成了不容忽视的问题,这使得开发人员和软件用户更加关注系统的安全性。
安全工作在企业级软件开发中被戏称为“亡羊补牢”,大家印象中的安全工作都是在问题发生后才采取措施。本文旨在从根本上纠正这一做法,通过对.NET平台安全问题的了解,做到风险早避免,问题早处理,在应用程序开发的全生命周期中严把安全关,保证系统正常、稳定地运行。
本书为两组人群编写。
(1).NET应用程序的设计和开发人员,他们应该了解.NET安全的特点和局限性,以便在设计和编码过程中进行相应考虑。本书的每一章节都使用了大量实例,帮助开发人员理解安全的服务配置和代码编写。
(2)应用系统的用户,这些应用系统是基于.NET平台进行开发和部署的。通过本书,读者可以清晰地分辨哪些行为是危险的,而这些行为我们是每天都会遇到的.比如,通过最常见的数据加密和身份验证,了解.NET平台安全运行的机制,就可以减少在系统操作过程中的低级错误,排除安全隐患。
我们希望读者具有基本C#或Visual Basic.NE7.编程经验,相关技术可以参考作者所著.NET开发系列书籍。
本书由杨云、刘君主编,参加编写的还有:刘小鹿、谢晓锋、蔡芳、胡建、陈雪郊、刘扬、杜华富、胡浩、成梅花、王磊、李渝乎、王宇晟、王春中、冉剑、陈代勇、陈佳佳、陈家云、李广平等。在编写过程中,人民邮电出版社和作者所在院校领导对此给予了大力支持和帮助,东北大学的乔建忠教授对本书进行了审阅,在此表示感谢。最后,还要感谢家人在写作过程中的理解和支持,那是我们工作的持续动力和精神支撑。
本书部分代码可在http:llwww.ptpress.com.ell处下载。如有问题,可以访问作者博客:http:Naspnet.spaces.1ive.com/。
由于水平有限,书中难免存在不足之处,欢迎广大读者批评指正(电子函件:book better@sina.tom)。另外,如果想要发表关于本书的评论,可发电子邮件或者在博客上留言。
文摘 插图:


(2)加载时,除非控件拥有受信任的签名,否则,运行库仅授予控件与工.ocalIntranet命名权限集关联的权限。在控件拥有受信任签名的情况下,会被授予与LocalIntranet权限集关联的权限,同时因为控件拥有受信任签名,还可能被授予其他一些权限。
(3)运行时,每当调用方(在此情况下为寄宿的控件)访问公开受保护资源的库或调用非托管代码的库时,该库就会提出安全要求,导致对调用方的权限进行检查,查看调用方是否被授予了适当权限。这些安全检查可防止控件在客户端执行未经授权的操作。
2.基础知识
每种以公共语言运行库为目标的应用程序必须与运行库的安全系统进行交互。当应用程序执行时,运行库将自动对它进行计算,然后赋予其一个权限集。根据应用程序获得的权限不同,应用程序或者正常运行,或者发生安全性异常。特定计算机上的本地安全设置最终决定代码所收到的权限。这些设置会因计算机而异,所以无法确保代码将收到运行所需的足够的权限。这与非托管开发领域不同,在非托管开发领域,不必担心运行代码所需权限。
每个开发人员都必须熟悉下面的代码访问安全性操作。
编写类型安全代码:若要使代码受益于代码访问安全性,必须使用生成可验证为类型安全代码的编译器。
强制性语法和声明式语法:与运行库安全系统的交互使用强制性安全调用和声明式安全调用执行。声明式调用使用属性执行,强制性调用在代码中使用类的新实例执行。有些调用只能强制性地执行,有些调用只能以声明方式执行,还有一些调用可以这两种方式中的任一种方式执行。
为代码请求权限:请求将应用到程序集范围,代码通知运行库在此范围内运行它所需的权限,运行库在代码加载到内存中时计算安全请求。代码使用请求通知运行库运行所需权限。
使用安全类库:类库使用代码访问安全性指定所需权限。
3.通过部分受信任的代码使用类库
系统一般不允许通过低于完全信任级别(该信任级别是运行库代码访问安全系统授予的)的应用程序调用共享托管库,除非库编写器通过使用AllowPartiallylYustedCallersAttribute类明确允许调用。因此,应用程序编写器必须注意在部分受信任的上下文中不能使用的库。默认情况下,在本地:Intranet或Internet区域中执行的所有代码都是部分受信任的。如果您的代码不会在部分受信任的上下文中执行或被部分受信任的代码调用,那么您就不需要关心本小节中的信
……
热点排行