您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——
如何使用Microsoft.NET保护应用程序和数据的安全讲师:欧岩亮微软MSDN特约讲师LiveMeeting2005新特性清晰音质——与微软资深讲师的零距离接触实时讲义下载——轻松获得第一手资料中文交互——强大的中文提问平台,想问就问,没有困扰内容更精彩——开发,集成,架构设计,项目管理,应有尽有课程介绍这次Webcast会给大家介绍如何应用.NETFramework中的特性来保护代码的安全基础内容熟悉.NET开发LEVEL300课程安排身份验证授权加密强命名程序集代码访问安全中间层安全如何避免SQL注入身份验证使用Credential来唯一标明一个用户可以使用MicrosoftWindows的集成身份验证,使用用户登录Windows时的用户凭证编写自己的用户身份验证的程序,应用程序来管理用户凭证。System.Security.IIdentity接口和System.Secutity.GenericIdentity类System.Security.Principal.WindowsIdentity.GetCurrent().Name演示一AuthenticationAuthorization使用基于角色的安全可以通过编程实现基于角色的授权角色可以代表商业流程中的工作职责,例如:秘书、经理、管理员、总监等用角色的方式来管理用户会更加简便如何使用基于角色的安全PrincipalPermissionAttrivute和SecurityAction.DemandPrincipalPermission(SecurityAction.Demand,Authenticated:=True,_Name:=Nothing,Role:=“Administrator”)_PublicClassAdminClass…IPrincipal.isInRole()lblBossMan.Visible=_Context.User.IsInRole(“BossMan”)tbToBeChangedOnlyByQueenBee.ReadOnly=Not_Context.User.IsInRole(“QueenBee”)演示二Authorization加密加密将字节打乱对称加密与非对称加密对称加密适用一个相同的密钥进行加密/解密非对称加密使用一个密钥对进行加密/解密,加密与解密的密钥是不同的(公钥/私钥对)非对称加密算法更加安全对称加密算法更加高效System.Security.Cryptography名称空间如何进行密钥管理演示三加密CodeAccessSecurity最低权限的策略CodeGroup——按照逻辑分类的代码组合CodeGroup可以按照多种方式划分URL,strongname,zone,etcPermissionSets——许可集,用来定义代码能够访问的资源:文件I/O,IsolatedStorage独立存储,SQL客户端,等等。LinkdemandsDemoFour代码访问安全强命名应用程序集使用sn.exe工具来创建强命名公钥/私钥对,并存储在文件当中:sn.exe–kNorthwind.snkAssemblyKeyFileAttributeAssembly:AssemblyKeyFile(_“c:\keys\Northwind.snk”)优势可以被装载到GAC当中Side-by-side部署,支持多个版本的应用程序集在编译时,.NET的客户端代码使用了强命名应用程序集,在运行时能够有效地防止装入“木马”应用程序集DelayedSigning私钥保密性,确保开发团队中的多个组建使用相同的强命名只导出公钥sn-pNorthwind.snkNorthwindPublicOnly.snkAssembly:AssemblyKeyFile(_“c:\keys\NorthwindPublicOnly.snk”)Assemble:AssemblyDelaySign(True)Sn-Vrassemblyname:关闭对只拥有公钥的强命名应用程序集进行验证Sn-Rassemblynamekeyfilename:在发布之前对应用程序集进行缓签名LinkDemands连接请求发生在外部的代码对本应用程序集进行调用的时候System.Security.Permissions名称空间例如:StrongNameIdentityPermission属性从某个应用程序集中提取公钥标示(一个十六进制的字符序列)sn-TpNorthwindModel.dll例如:StrongNameIdentityPermission(_SecurityAction.LinkDemand,_PublicKey:=“002400000…d6”,_Version:=“1.0.0.0”)MiddleTier安全最现成的方法,COM+是最安全的解决方案——与Windows整合并支持配置WebService的安全可以通过HTTPS和IIS安全来控制当不能使用IIS安全的时候,可以使用WS-Security(WebServiceEnhancements的一部分)来保证平台之间的WebService安全Remoting安全IIS宿主和TCP,使用IIS安全和HTTPS其他宿主,需要实现定制的Channel或Sink演示五中间层安全SQL注入SQL注入这种威胁发生在动态生成SQL查询语句的时候,动态生成的SQL语句可能会被篡改例如:stringsql=“select*fromuserswhereUserID=‘”+UserID+“’andpassword=‘”+Password+“’”如果在上面的SQL语句中加入’OR1=1’这个条件,users表中的所有数据将最为结果返回所有使用动态SQL查询的应用程序都有可能受到这种威胁为了防御这种攻击,去掉所有的动态SQL查询:使用ADO.NET中的SqlParameters演示六防止SQL注入攻击安全设计目标最小化攻击范围分析具体的攻击并阻止它们:拒绝服务攻击基于文件或目录的攻击SQL注入引诱攻击(Luring)防患于未然,提早预知新的攻击使用经过验证的安全技术:身份验证,给予角色的授权,HTTPS,加密总结.NET包括了强大的内建的安全特性具体问题具体分析,根据情况来选择安全技术,编写安全的基于WindowsForms的代码不需要绞尽脑汁去发明新的安全代码更多信息安全开发中心.NET相关的安全书籍WS-Security://msdn.microsoft.com/library/?url=/library/en-us/wse/html/f991ad3d-f574-4085-8a61-98326ff206ed.asp声音调查:请大家通过投票的方式,正确的选择,您在本次收听讲座的“声音效果”。Q&A正在进行中…听众通过点击“Askaquestion”提出本次讲座技术问题:输入的文字最好用中文,方便老师阅读。虽然您提交后,显示的是乱吗,但老师可以正常阅读。
本文标题:Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——
链接地址:https://www.777doc.com/doc-1250295 .html