


Slide Title,,Body Text,,Second level,,Third level,,Fourth level,,Fifth level,,,面向,.NET,的,Web,应用程序设计,第1章 Microsoft .NET Framework 概述,,第2章 使用 Microsoft Visual Studio .NET,,第3章 使用基于 Microsoft .NET 的开发语言,,第4章 创立 Microsoft ASP.NET Web 窗体,,第5章 在 Microsoft ASP.NET Web 窗体中添加代码,,第6章 Microsoft ASP.NET Web 应用程序的跟踪机制,,第7章 验证用户输入,,第8章 创立用户控件,,第9章 使用 Microsoft Visual Studio .NET 访问关系型数据,,第10章 使用 Microsoft ADO.NET 访问数据,,第11章 通过 Microsoft ADO.NET 调用存储过程,,第12章 读写 XML 数据,,第13章 使用和创立 XML Web Service,,第14章 状态管理,第15章 配置、优化和部署 Microsoft ASP.NET Web 应用程序,,第16章 Web 平安性介绍,,第17章 Web 应用程序平安性规划,,第18章 验证用户输入,,第19章 Internet 信息效劳身份验证,,第20章 保护 Web 页面平安,第21章 保护文件系统数据的平安,,第22章 保护Microsoft SQL Server的平安,,第23章 保证通信中的机密信息和数据完整性,,第24章 加密、散列和数据签名,,第25章 测试 Web 站点的平安性,面向,.NET,的,Web,应用程序设计,第21章 保护文件系统数据的平安,保护文件平安的概述,,Windows 访问控制,,以编程方式创立 ACL,,保护 ASP.NET Web 应用程序文件,保护文件平安的概述,Web 应用程序执行文件〔Implementation File〕遭到攻击的原因,,保护 Web 应用程序执行文件,21.1 保护文件平安的概述,Web 应用程序执行文件〔Implementation File〕遭到攻击的原因,Web 应用程序执行文件被攻击的理由,,效劳器端脚本包含应用程序执行的源代码,,源代码包含数据库结构、数据库连接字符串、受信任的用户名和密码等机密信息,,可能导致被攻击的漏洞,,IIS 效劳器没有安装最新的补丁,,执行文件可能以被变通的方式被访问,,未对配置文件采取保护措施,21.1.1 Web 应用程序执行文件〔Implementation File〕遭到攻击的原因,保护,,Web,应用程序执行文件,,文件和目录的 ACL〔Access Control List,访问控制列表〕,,采用 Windows 文件平安性设置 Web 应用程序页面文件或目录的 ACL,,IIS 平安性,,IIS 包含所有 Web 应用程序的通用访问权限,,ASP.NET 中的 Web.config 文件,,可以在 ASP.NET 应用程序的 Web.config 文件中设置身份验证和授权信息,21.1.2,保护,,Web,应用程序执行文件,,第21章 保护文件系统数据的平安,保护文件平安的概述,,Windows 访问控制,,以编程方式创立 ACL,,保护 ASP.NET Web 应用程序文件,Windows,访问控制,平安描述符概述,,设置文件的 ACL,,最正确实践,,课堂练习 查看和设置文件的 ACL,,危险的 DACL 设置,21.2,Windows 访问控制,可保护对象是具有平安描述符的 Windows 对象,,文件和目录,,进程和线程,,注册表项,,Windows 效劳,,本地或远程打印机,,网络共享对象,,目录效劳对象,,命名管道,,进程间同步对象,平安描述符概述,21.2.1 平安描述符概述,平安描述符概述,,可保护的,,对象,,安全描述符,,所有者,SID,域控制器,组,SID,域控制器,DACL,SACL,,ACE – ACCESS_DENIED_ACE,,ACE – ACCESS_ALLOWED_ACE,ACE – SYSTEM_AUDIT_ACE,21.2.1 平安描述符概述,平安标示符 〔SID〕,,表示受信者的惟一标识,,Windows 域控制器或本地计算机为每个用户账户确定一个 SID,,访问控制项〔ACE〕,,控制或监视对可保护对象的访问,,访问控制列表〔ACL〕,,可保护对象的一组访问控制项列表,,平安描述符,,包含可保护对象的所有平安信息,平安描述符概述,21.2.1 平安描述符概述,,多媒体演示 平安描述符概述,Windows,域,域控制器,SID,访问,,令牌,登录,文件或目录的属性对话框,,“平安〞选项卡,,通常用于描述对象的平安描述符,,上局部显示对象的 DACL,允许添加或删除 ACE,,下局部显示当前选定 的 ACE 对象访问权限的简略列表,,21.2.2,设置文件的,ACL,DACL,选定,ACE,的对象简略访问权限,“高级〞对话框显示详细的平安描述符信息,,“权限〞选项卡,,显示对象的所有 DACL,添加、编辑或删除 ACE,,显示对象所有的访问权限,,“审核〞选项卡,,显示对象的 SACL,添加、编辑或删除 ACE,,“所有者〞选项卡,,显示对象所有者的 SID 和改变对象的所有者,设置文件的,ACL,21.2.2,设置文件的,ACL,最正确实践,文件类型,ACL,设置,脚本文件,(.asp, .aspx),Everyone,(读取及执行),,Administrators,(完全控制),,System,(完全控制),被包含文件,,(.inc, .shtm, .shtml),Everyone,(读取及执行),,Administrators,(完全控制),,System,(完全控制),静态的内容文件,,(.htm, .txt, .gif, .jpg),Everyone,(读取),,Administrators,(完全控制),,System,(完全控制),对于 ASP Web 应用程序,设置目录的 ACL 来保护 Web 页面,,对于 ASP.NET Web 应用程序,使用配置文件中的“Location〞节和“Authorization〞节来保护 Web 页面,21.2.3 最正确实践,,课堂练习 查看和设置文件的,ACL,教师,,查看 ManualAcl.htm 文件的 ACL,,创立一个新的计算机用户账户,,修改 ManualAcl.htm 文件的ACL设置,,学生,,使用 Internet Explorer 访问ManualAcl.htm,,时间:10 分钟,21.2.4,课堂练习 查看和设置文件的,ACL,危险的,DACL,设置,NULL DACL,没有为对象提供任何免受攻击的保护,,一些危险的,ACE,类型,,Everyone (WRITE_DAC),,Everyone (WRITE_OWNER),,Everyone (FILE_ADD_FILE),,Everyone (DELETE),,Everyone (FILE_DELETE_CHILD),,Everyone (GENERIC_ALL),21.2.5,危险的,DACL,设置,第21章 保护文件系统数据的平安,保护文件平安的概述,,Windows 访问控制,,以编程方式创立 ACL,,保护 ASP.NET Web 应用程序文件,以编程方式创立 ACL,使用,Cacls.exe,设置,ACL,,WMI,概述,,使用,WMI,设置,ACL,,演示 使用,WMI,设置,ACL,21.3 以编程方式创立 ACL,使用,Cacls.exe,设置,ACL,查看或修改 DACL 的控制台程序,,语法,,,,,例如,Cacls,filename,[/T] [/E] [/C] [/G user:perm] [/R user] [/P user:perm] [/D],21.3.1,使用,Cacls.exe,设置,ACL,#,撤销,Everyone,对,ACL2.htm,的访问权限,,Cacls ACL2.htm /E /R Everyone,,,#,添加,Everyone,对,ACL2.htm,的完全访问控制权限,,Cacls ACL2.htm /G Everyone:F,,使用,Cacls.exe,设置,ACL,局限性,,只能编辑文件和目录的 ACL,,只能拒绝或赋予用户以下权限:读取、写入、修改和完全控制,,不支持批处理脚本的 /Y 开关,,不支持 SACL〔System Access Control List,系统访问控制列表〕设置,21.3.1,使用,Cacls.exe,设置,ACL,WMI,概述,WMI〔 Windows Management Instrumentation ,Windows 管理标准〕,,一组用于管理计算机、设备和子系统的通用接口,,可用于配置 IIS、文件设置、平安性设置和Active Directory,,程序访问,,WMI COM 接口,,.NET 的 System.Management 命名空间,,基于查询的信息检索,21.3.2 WMI,概述,使用,WMI,设置,ACL,WMI COM 对象是根接口,,使用 moniker 创立一个实例,,执行查询,,创立新的实例,,WMI 使用一种类似于 SQL 的查询语法,通过使用WMI COM 根对象可以执行这种语法,,WMI COM moniker 也可以用于访问文件属性,代码例如,21.3.3,使用 WMI 设置 ACL,21.3.4 演示 使用,WMI,设置,ACL,演示 使用,WMI,设置,ACL,查看 SetAcl.vbs 脚本文件的平安描述符,,查看 ScriptAcl.htm文件的平安描述符,,运行 SetAcl.vbs 脚本并查看 SetAcl.vbs 的平安描述符,第21章 保护文件系统数据的平安,保护文件平安的概述,,Windows 访问控制,,以编程方式创立 ACL,,保护 ASP.NET Web 应用程序文件,保护,ASP.NET Web,应用程序文件,.config,文件概述,,ASP.NET,请求处理,,HttpForbiddenHandler,类,,演示 使用,HttpForbiddenHandler,类,21.4,保护 ASP.NET Web 应用程序文件,.config,文件概述,ASP.NET Web,应用程序的配置采用,XML,文件,,探测文件的改变和应用新的设置,,,,元素,,,Machine.config,配置应用整个计算机设置,,%WinDir%\Microsoft.NET\Framework\,version,\Config,,Web.config,配置应用程序,,覆盖或重写,Machine.config,文件设置,,使用,System.Configuration,类来读取配置,21.4.1,.config 文件概述,aspnet_wp.exe,,HttpModule,HttpModule,HttpHandler,,(*.aspx),HttpHandler,,(*.asmx),ASP.NET,请求处理,HttpModules 响应事件,,HttpHandlers 响应文件类型的请求,,HttpModules 和 HttpHandlers 都在 .config 文件中设置,, 和 ,Inetinfo.exe,aspnet_isapi.dll,超文本传输协议,(HTTP),请求,21.4.2,ASP.NET 请求,处理,HttpForbiddenHandler,类,否认文件访问的 HttpHandler,,Machine.config 文件默认拒绝访问包含以下文件类型,,.asax、.ascx、.config、.cs、.csproj、.vb、.vbproj、 .webinfo、.asp、.licx、.resx、.resources,,Web.config 可以扩展这些默认拒绝访问的文件类型,,查看或设置应用程序映射,,翻开 Internet 信息效劳管理器,,右击虚拟目录,点击〞属性〞,,点击“配置〞,翻开“应用程序配置〞对话框,1,2,3,21.4.3,HttpForbiddenHandler 类,,演示 使用,HttpForbiddenHandler,类,测试对,.txt,类型文件的访问,,使用,HttpForbiddenHandler,,限制对,.txt,类型文件的访问,,再次测试对,.txt,类型文件的访问,21.4.4 演示 使用,HttpForbiddenHandler,类,回忆,学习完本章后,将能够:,,解释保护 Web 应用程序执行文件的理由,,使用 Windows 访问控制列表〔ACL〕保护文件系统数据,,使用脚本设置文件和目录的 ACL,,设置 ASP.NET 的 Web.config 文件来限制对 ASP.NET Web 应用程序文件的访问,,实验 使用 ACL 来保护文件的平安,练习 1 创立新的测试用户,,练习 2 确保 ASP.NET Web 应用程序的平安,。