| 第1章 Web应用程序安全概述 1事情总有两面性,Web应用程序在带给我们便利的同时,也带来了风险和问题,如何预防?如何控制?让我们从头细说1.1 Web应用程序的安全性 1追根溯源,总览应用程序的安全性1.1.1 代码访问安全性 31.1.2 基于角色的安全性 8Web应用系统安全是一个整体,不该将其各部分分裂来看,明确.NET安全技术各个部分如何相互协作,应用系统整体安全将受益匪浅1.2 Web应用系统安全模型 111.3 .NET安全类库 15全面地介绍安全API参考,涉及.NET框架基础类库中与安全有关的命名空间1.3.1 安全类库的内部关系 161.3.2 System.Security 161.3.3 System.Security.Cryptography 181.3.4 System.Security.Principal 191.3.5 System.Security.Policy 211.3.6 System.Security.Permissions 231.3.7 System.Web.Security 25第2章 ASP.NET的安全控件 27“工欲善其事,必先利其器”,能够开发出安全的Web应用程序,安全控件功不可没2.1 登录控件 272.2 登录状态控件 292.3 密码维护控件 302.4 创建用户向导控件 332.5 页面访问控件 35第3章 Web应用系统的数据加密 37数据加密永远是Web应用系统中最需要关注的部分,我们不仅介绍了流行的加密方法,还为开发人员提供了编程参考3.1 数据安全威胁 373.2 哈希加密算法 373.3 Windows API加密方法 433.4 配置信息加密方法 503.4.1 DpapiProtectedConfiguration Provider类 523.4.2 RsaProtectedConfiguration Provider类 563.5 保护视图数据 60视图状态中的数据总是让黑客们垂涎三尺,但“道高一尺,魔高一丈”,在视图中进行数据传输的同时,地下秘密保护工作也在积极进行3.5.1 开启视图保护开关 623.5.2 加密视图信息 643.5.3 用户独立视图 663.6 通过密钥进行数据加密 67.NET安全命名空间Cryptography下的3种加密方法3.6.1 对称加密算法 683.6.2 非对称加密算法 723.6.3 证书加密 75第4章 数据库安全通信 80以SQL注入为典型代表的攻击让数据库脆弱不堪,当今很多黑客攻击和数据丢失事件都是从数据库切入的,进行安全的数据库连接对于保证数据库正常运行尤为重要4.1 SQL注入攻击 80SQL注入攻击是一种常见的Web应用程序的安全漏洞,注入二字形象地描述了黑客攻击性行为特点,攻击理由也非常简单:数据库是系统数据的大本营。我们所要做的,首先就是保证后方安全4.1.1 攻击原理 814.1.2 攻击方式 814.1.3 防范方法 824.2 注入攻击实例 834.3 防止注入攻击 894.4 安全数据库连接 90开发人员为了数据库的连接安全真是绞尽脑汁,验证、授权和加密都是其中的常见方法4.4.1 数据库身份验证 924.4.2 数据库授权 934.4.3 数据库安全配置 954.4.4 数据库加密 964.4.5 数据库反馈信息保护 994.4.6 LINQ技术 1024.4.7 数据库安全部署 104第5章 数据验证 107数据在传输过程中不仅要进行加密,还要进行有效性的验证,主要为了避免输入中发生低级错误,切莫“一失足成千古恨”5.1 数据验证概述 1075.2 数据验证方式 112我们天天输入的数据不一定正确或格式良好,它们可能成为应用系统的安全漏洞,这并不是危言耸听。应用系统不对数据进行验证,后果很严重5.2.1 图片和附加码数据验证 1125.2.2 Web表单数据验证 1155.2.3 Web窗体数据验证 1165.3 数据审核 1255.4 数据过滤 128第6章 身份验证技术 133用户名和密码是通常意义上最简单的身份验证,角色验证、IIS和活动目录在这个领域一直是配合默契的亲密战友6.1 用管道技术加固验证功能 133从用户在地址栏敲入键接地址到页面呈现在眼前的0.1秒之内,IIS和.NET框架做了大量的幕后工作,而管道就是在过程中进行衔接的桥梁6.1.1 安全HTTP请求处理流程 1346.1.2 安全HTTP管道 1366.1.3 安全HTTP Modules 1396.2 基于角色的安全认证 141安全认证在整个Web应用程序的安全体系中扮演着重要的角色,而它肩上所担负的安全责任也是不可推卸的6.2.1 IIS和ASP.NET用户认证流程 1426.2.2 认证 1436.2.3 授权 1436.2.4 ASP.NET用户认证 1436.2.5 使用ASP.NET管理工具添加用户 1466.2.6 ASP.NET角色管理系统 1486.2.7 使用Membership/Role API添加用户 1536.2.8 ASP.NET的MemberShip Provider 1616.2.9 实现自定义的Membership Provider类 1646.2.10 基于角色的站点导航 1696.3 窗体验证 1726.4 操作系统集成验证 176Windows身份验证一般并不单独行动,配合IIS和活动目录方能发挥其巨大潜力6.4.1 基于IIS的Windows身份验证 1776.4.2 基于活动目录的Windows身份验证 1816.5 文件授权 189第7章 构建安全的组件 191系统是由一个个组件组成的,组件是否安全决定了整个系统的安全程度,从组建所面临的威胁入手,积极应对,做到“兵来将挡,水来土掩”7.1 组件面临的威胁 1917.2 安全的服务组件设计 1927.3 组件的安全身份验证 1937.4 组件中的敏感数据 1967.5 组件安全审核和日志记录 1967.6 安全组件构建实例 1977.7 安全组件的部署 2017.8 组件强签名与反编译 2037.9 安全的I/O文件操作 2047.10 安全操作注册表 2127.11 序列化代码安全 2147.12 安全的多线程访问 214第8章 加固会话安全 217会话的安全对于加固整个Web应用系统来说不可或缺,会话中携带重要数据,必须防止客户与服务器建立的会话被黑客截取和探查8.1 安全会话概述 2178.2 保护会话状态 2218.3 创建安全会话 2228.4 基于HTTPS的自定义绑定会话 2248.5 在会话中使用令牌 2268.6 保护会话中的数据 2288.7 会话参数 2298.8 会话的存储安全 230第9章 安全日志 234安全日志记录了系统中出现的异常错误信息,设计有效而安全的日志是保证异常的捕获和处理的最佳途径9.1 错误异常 2349.2 错误异常的作用 2349.2.1 错误异常处理机制 2359.2.2 错误异常组成 2359.3 异常处理程序的设计 235设计涵盖了异常处理的全生命周期,从引发到消亡,缺一不可9.3.1 错误异常的引发 2359.3.2 错误异常的处理 2429.3.3 错误异常的捕获 2459.3.4 设计自定义错误异常 2469.3.5 错误异常的性能 2479.3.6 显示安全的错误信息 2489.4 保护ASP.NET日志 251全球最强日志组件Log4net9.4.1 Web系统安全监控 2519.4.2 记录错误信息 2529.4.3 使用顶级日志组件 2559.4.4 安全事件 261第10章 代码信任技术 267代码信任按照访问权限进行分级,设置合适的代码信任级别,保证应用程序顺利访问和执行10.1 代码信任技术概述 26710.2 资源访问安全 26710.3 完全信任和部分信任 26810.4 代码访问安全配置 26910.5 ASP.NET策略文件 27010.6 ASP.NET安全策略 27110.7 开发部分信任Web应用程序 27310.8 部分信任级的配置方法 27410.9 部分信任的Web应用程序处理策略 27510.10 自定义策略 27610.11 沙箱保护策略 27610.12 中度信任程序 27810.13 中度信任的限制 278第11章 Web服务器安全设置 281不管代码安全技术多么完善,忽略服务器安全将使得安全防范体系功亏一篑。现在流行的IIS 6.0和IIS 7.0服务器软件的安全设置就是我们要学习的重点11.1 配置安全的操作系统 28111.2 安全配置IIS 6.0 28411.3 使用IIS 6.0 28711.4 IIS 7.0安全设置 289IIS 7.0是目前最流行的主流Web服务器软件,这里要注意其相对于IIS 6.0的改进11.4.1 角色设置 29111.4.2 页面和控件设置 29211.4.3 监控Web系统安全 29511.4.4 安全密钥配置 29911.4.5 安全日志配置 302第12章 代码安全性测试工具 306测试一直是检验代码准确性的必要方式,也是审核的第一关,代码安全性测试也不例外12.1 监控系统HTTP流 30612.2 黑盒安全检测 31312.3 检测代码漏洞工具 31612.4 数据库漏洞检测工具 323第13章 .NET安全审核模板 326有了技术和计划,就可以进入执行和审查环节,.NET安全审核不止起到亡羊补牢的作用,更是对安全开发进行评审,保证Web程序安全的重要壁垒 |
商品评论(0条)